MySql不正确的日期时间值
我知道可能有人问过这个问题,但我一辈子都搞不清楚我的datetime值到底出了什么问题,而mysql似乎并不喜欢这个问题 在我的情况下,我会在每个查询前添加“explain”,以查看explain计划的外观。这是在实际查询运行之前完成的。问题是mysql不喜欢解释中的日期格式,但常规查询运行良好 这是我收到的错误:MySql不正确的日期时间值,mysql,datetime,mariadb,Mysql,Datetime,Mariadb,我知道可能有人问过这个问题,但我一辈子都搞不清楚我的datetime值到底出了什么问题,而mysql似乎并不喜欢这个问题 在我的情况下,我会在每个查询前添加“explain”,以查看explain计划的外观。这是在实际查询运行之前完成的。问题是mysql不喜欢解释中的日期格式,但常规查询运行良好 这是我收到的错误: SQL Error: 1292, SQLState: 22007 Incorrect datetime value: '11/19/2015 19:49:34.076' for c
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'
explain delete from LoggableActivity,其中createdTime月/日/年不是(不重复)世界上最好的序列
年/月/日更好
试试这个:
explain
select from LoggableActivity
where createdTime<'2015-11-19 19:49:34.076'
解释
从LoggableActivity中选择
where createdTimeask from@payamsbr谢谢,我会在那里问。如果需要,你可以使用STR\u TO\u DATE()
函数。虽然这可能是最好的方法,但似乎并不能解决我的问题。正如我提到的,常规查询(相同日期时间和所有)正在进行OK。一旦我将explain附加到查询中,它就会抱怨。我猜这与字符串转换和查询的执行有关。我不知道MySQL或Java的内部结构,但查询的解释前缀必须通过某种过滤器传递查询,这种更改会影响处理日期的方式。也许这是一个错误-我不能说。但是,如果您想要坚如磐石的查询,那么就不要在任何代码(不仅仅是sql)中使用mm/dd/yyyy。我熟悉的大多数原生java都使用iso标准的日期序列。请注意,mm/dd/yyyy只是世界人口的一小部分,因此ISO 8601等标准感谢您的帮助!事实上,这正是你提到的。用于创建解释查询字符串的算法中存在错误。将日期定为yyyy/mm/dd解决了问题。:)