我有以下疑问:
SELECT 'Wrong DATE format'
FROM DATE_TABLE
WHERE CONVERT(STR_TO_DATE( STATUS_DATE, '%Y-%c-%e %H:%i:%s'), CHAR(20)) \<\> STATUS_DATE;
列“STATUS_DATE”的数据类型为“LONGTEXT”,值为“2014-11-30 00:00:00.000”
查询工作正常,并得到结果。
当我使用查询插入错误日志表时:
INSERT INTO ERROR_LOG (THE_ERROR)
SELECT 'Wrong DATE format'
FROM DATE_TABLE
WHERE CONVERT(STR_TO_DATE( STATUS_DATE, '%Y-%c-%e %H:%i:%s'), CHAR(20)) \<\> STATUS_DATE;
列“THE_ERROR”的数据类型为“VARCHAR(4000)”。
我收到错误:
错误代码:1292。截断的不正确日期时间值:'2014-11-30 00:00:00.000'
有人可以帮我吗?我哪里出错了?
我使用 CONVERT() 函数来确保 where 条件中的结果保持为字符串并避免任何转换为 DATE。
但是仍然存在隐式日期转换,我不确定在哪里以及为什么,以及为什么在使用插入时出现此错误?
我在其他问题中找到了答案,会尝试在这里分享。
这是关于 MySQL 中的警告。
查询返回结果,但仍然带有警告,并且带有警告,您无法插入或更新表。所以我不得不使用:
插入忽略...
现在工作正常。
希望这会帮助其他人:) 谢谢你