截断错误的日期值神秘

时间:2014-02-20 02:08:59

标签: python mysql

我通过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()

但是,我仍然不明白为什么这会影响某些项目而不影响其他项目。

1 个答案:

答案 0 :(得分:2)

您需要先转换它。

DATE_FORMAT(STR_TO_DATE(left(p.local_time,10), '%Y-%m-%d'))