我知道这个问题可能已经被问过了,但我不知道我的生活中弄清楚mysql似乎不喜欢我的日期时间值有什么问题。
在我的情况下,我在每个查询前面附加'explain'来查看解释计划的样子。这是在运行实际查询之前完成的。问题是mysql不喜欢解释中的日期格式,但常规查询运行正常。
这是我收到的错误:
SQL Error: 1292, SQLState: 22007
Incorrect datetime value: '11/19/2015 19:49:34.076' for column 'createdTime' at row 1
查询是:
explain delete from LoggableActivity where createdTime<'11/19/2015 19:49:34.076'
这种格式有什么问题?它对我来说很好...... 为什么只有附加解释的查询不起作用?
更多信息: 我在java中使用实体管理器来创建和执行查询,生成的日期是Java的“新日期(毫秒)”的结果。
由于
答案 0 :(得分:2)
MONTH / DAY / YEAR不是(重复不是)世界上最好的序列
年/月/日好多了
试试这个:
explain
select from LoggableActivity
where createdTime<'2015-11-19 19:49:34.076'
在维基百科上考虑这篇文章 https://en.wikipedia.org/wiki/Date_format_by_country
看看世界上有多少人使用“大端”(yyyy-mm-dd)或“小端”(dd-mm-yyyy)日期格式。将日期字符串视为“大端”更为明智。特别是按年开始日期字符串可以减少与日期数小于13的日期混淆。