0

我有一个在 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 中是否有一个设置可以关闭或打开,从而使这些功能有所不同?

4

1 回答 1

1

MySQL 不够聪明,无法解析所有可能的日期格式。连人都不够聪明——是10/01/20121 月 10 日还是 10 月 1 日?您必须从字符串执行适当的转换或依赖默认格式,通常是YYY-MM-DD

mysql> SELECT @@date_format;
+---------------+
| @@date_format |
+---------------+
| %Y-%m-%d      |
+---------------+
于 2012-11-28T16:58:23.623 回答