我在将ISO8601 Datetime格式插入MySQL数据库时遇到麻烦。
我想将ISO格式(即 yyyymmddThhmmss + | -hhmm )插入我的数据库表DATETIME列中。
当我尝试插入时,我遇到了问题:
操作失败:将SQL脚本应用于数据库时出错。执行中:UPDATE db。ordersSET date=‘20080915T155300 + 0500’WHERE id=‘1’; 错误1292:1292:不正确的日期时间值: ‘20080915T155300 + 0500’列’日期’在第1行的SQL语句:UPDATE db。ordersSET date=‘20080915T155300 + 0500’WHERE id=‘1’
操作失败:将SQL脚本应用于数据库时出错。执行中:UPDATE db。ordersSET date=‘20080915T155300 + 0500’WHERE id=‘1’;
db
orders
date
id
错误1292:1292:不正确的日期时间值: ‘20080915T155300 + 0500’列’日期’在第1行的SQL语句:UPDATE db。ordersSET 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