这是一个奇怪的,虽然我找到了几个关于1292警告的帖子,但似乎没有什么比我的情况更合适。
设置: Python 3.5 PyMySQL == 0.7.11 MySql 5.5.53
查询:
Executing sql: SELECT PacketID, `Type`, `Length`, Raw_Data
FROM extra_packets
WHERE `Time` > NOW() - 10 AND PacketId > '18345' ORDER BY `Time` DESC;
结果:
python3.5/site-packages/pymysql/cursors.py:323: Warning: (1292, "Incorrect datetime value: '20171107190398' for column 'Time' at row 1")
示例数据:
PacketID Time Type Length Raw_Data
18,346 2017-11-07 19:04:06 76 22 .......
18,345 2017-11-07 19:04:01 76 22 .......
18,344 2017-11-07 19:03:57 76 22 .......
备注:
Time
- 仅用于过滤器。问题:(显然)如何更正此警告?
答案 0 :(得分:1)
使用正确的INTERVAL
表达式代替10
。
WHERE Time > DATE_SUB(NOW(), INTERVAL 10 SECOND)
您的代码正在将NOW()
转换为20171107190408
之类的整数,然后从中减去10
。当当前时间的秒数小于10
时,您将收到错误。