MySQL 插入 ISO8601 日期时间格式

MySQL insert ISO8601 Datetime format

我在将 ISO8601 日期时间格式插入我的 MySQL 数据库时遇到问题。

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

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

Operation failed: There was an error while applying the SQL script to the database. Executing: UPDATE db.orders SET date='20080915T155300+0500' WHERE id='1';

ERROR 1292: 1292: Incorrect datetime value: '20080915T155300+0500' for column 'date' at row 1 SQL Statement: UPDATE db.orders SET date='20080915T155300+0500' WHERE id='1'

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

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