我通过Python查询MySQL数据库并获得一个奇怪的行为。
SELECT id FROM table WHERE local_time >= CURDATE()
然后bash输出以下几个项目的警告消息。
Warning: Truncated incorrect date value: '2012-12-31T21:00:00-0500'
数据存储为UTF-8 VARCHAR 255个字符。我检查了所涉及的项目,我看不出警告和不发出警告之间的任何区别。我错过了什么吗?
编辑:我用以下代码修复了它:
SELECT id FROM table where STR_TO_DATE(left(p.local_time,10), '%Y-%m-%d') >= CURDATE()
但是,我仍然不明白为什么这会影响某些项目而不影响其他项目。
答案 0 :(得分:2)
您需要先转换它。
DATE_FORMAT(STR_TO_DATE(left(p.local_time,10), '%Y-%m-%d'))