我有一个在where子句中进行日期比较,只有在年份是字符串的第一部分时才有效。 crDate字段是DATETIME,所以不应该同时进行以下两种工作吗?
and crDate between '2009/01/01' and '2009/01/21'
and crDate between '01/01/2009' and '01/21/2009'
如果在我看来这两个语句是相同的,但第一个返回预期结果,第二个返回0记录。
mySQL中是否有可以关闭或打开的设置会使这些功能有所不同?
答案 0 :(得分:1)
MySQL不够聪明,无法解析所有可能的日期格式。即使是人也不够聪明 - {1}} 1月10日或10月1日?您必须执行适当的conversion from string或依赖默认格式,通常为10/01/2012
:
YYY-MM-DD