admin

MySQL插入ISO8601日期时间格式

sql

我在将ISO8601 Datetime格式插入MySQL数据库时遇到麻烦。

我想将ISO格式(即 yyyymmddThhmmss + | -hhmm )插入我的数据库表DATETIME列中。

当我尝试插入时,我遇到了问题:

操作失败:将SQL脚本应用于数据库时出错。执行中:UPDATE dbordersSET date=‘20080915T155300 +
0500’WHERE id=‘1’;

错误1292:1292:不正确的日期时间值: ‘20080915T155300 + 0500’列’日期’在第1行的SQL语句:UPDATE
dbordersSET date=‘20080915T155300 + 0500’WHERE id=‘1’

有什么方法可以将这种格式的日期时间保存到MySQL中?


阅读 215

收藏
2021-07-01

共1个答案

admin

MySQL对时区提供了相当神秘的支持。也许这符合您的要求:

select convert_tz(str_to_date(left(val, 15), '%Y%m%dT%H%i%s'), '+00:00', insert(right(val, 5), 4, 0, ':'))
from (select '20080915T155300+0500' as val) x
2021-07-01