gpt4 book ai didi

mysql - 错误代码 : 1292. 截断了不正确的时间值

转载 作者:可可西里 更新时间:2023-11-01 07:24:44 24 4
gpt4 key购买 nike

SELECT *
FROM SESSIONS
WHERE TIME_TO_SEC(TIMEDIFF(NOW(), SESSION_CREATED)) / 3600 >= 24

这给了我 2 个结果

DELETE FROM SESSIONS
WHERE TIME_TO_SEC(TIMEDIFF(NOW(), SESSION_CREATED)) / 3600 >= 24

这给我:“错误代码:1292。截断了不正确的时间值”

SESSION_CREATED 是 TIMESTAMP 数据类型

实际数据:

SESSION_ID      SESSION_CREATED
223133 2017-05-22 07:14:34
223134 2017-05-22 07:14:36

怎么能select有效而delete无效呢?

最佳答案

为什么要用这么复杂的表达方式?为什么不这样做:

DELETE FROM SESSIONS
WHERE SESSION_CREATED < NOW() - INTERVAL 1 DAY;

至于为什么你的代码可能会失败,它使用了 timediff() ,它被限制在时间数据类型的范围内。 And this is:

MySQL retrieves and displays TIME values in 'HH:MM:SS' format (or 'HHH:MM:SS' format for large hours values). TIME values may range from '-838:59:59' to '838:59:59'.

因为您使用的是 NOW(),所以值会从一次迭代更改为下一次迭代。您刚好在数据不太旧时运行了 SELECT,然后在数据太旧时运行了 DELETE

关于mysql - 错误代码 : 1292. 截断了不正确的时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com