mysql - sql 日期比较仅在年份为第一时才有效

标签 mysql sql datetime date-comparison

我有一个正在 where 子句中进行日期比较的函数,该子句仅在年份是字符串的第一部分时才有效。 crDate 字段是一个 DATETIME,所以下面的两个不应该工作吗?

and     crDate between '2009/01/01' and '2009/01/21'

and     crDate between '01/01/2009' and '01/21/2009'

if 在我看来,这两个语句是相同的,但第一个返回预期结果,第二个返回 0 条记录。

mySQL 中是否有一个设置可以关闭或打开,从而使这些功能有所不同?

最佳答案

MySQL 不够智能,无法解析所有可能的日期格式。连人都不够聪明——10/01/2012是1月10日还是10月1日?您必须执行适当的 conversion from string或依赖默认格式,通常为 YYY-MM-DD:

mysql> SELECT @@date_format;
+---------------+
| @@date_format |
+---------------+
| %Y-%m-%d      |
+---------------+

关于mysql - sql 日期比较仅在年份为第一时才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610254/

相关文章:

iphone - 在带有 objective-c 的 SQL 查询中使用 %-sign(百分号)

c# - LINQ 分组依据然后显示 (dd mmm) 的日期时间

mysql - SQL 选择消除重复项并返回子表上记录的最新日期

mysql - 更改 Joomla 使用的 MySQL 驱动程序

时间:2018-01-08 标签:c#sql: get auto incrementing id after inserting data

docker - 更改 docker 和 Dockerfile 的时区

具有本地存储日期的智能手机(android,ios)的 HTML5 应用程序()

mysql - 如何在我可以从我的网站使用的 node.js 中进行身份验证?

mysql - 在mysql中选择一周前的记录

mysql - 一次选择的两个独特插入物