提问人:Hisham M. Najem 提问时间:10/12/2023 最后编辑:SelVaziHisham M. Najem 更新时间:10/17/2023 访问量:22
(MySQL的)“按子查询插入”在条件中包含日期转换
(MySQL) Insert by subquery contains date conversion in the condition
问:
我有以下疑问:
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。
但是仍然存在隐式日期转换,我不确定在哪里以及为什么我不确定,以及为什么在使用插入时会出现此错误?
答:
0赞
Hisham M. Najem
10/17/2023
#1
我在其他问题中找到了答案,将尝试在这里分享。
它是关于MySQL中的警告。
查询返回结果,但仍带有警告,并且带有警告,您不能插入或更新到表中。所以我不得不使用:
插入忽略...
现在它工作正常。
希望这能帮助其他人:) 谢谢
评论
0赞
Hisham M. Najem
10/17/2023
我从这个答案中得到了帮助,看起来我应该在提出问题之前进行更多搜索。stackoverflow.com/q/21213561/22245892
评论