跨越多年的日期之间的 mySQL

标签 mysql datetime date-format between

您好,我想知道为什么这个语句在 mySQL 中有效

SELECT COUNT(*) AS `numrows` 
FROM (`myTable`) 
WHERE DATE_FORMAT(creationDateTime, '%m/%d/%Y') BETWEEN '02/21/2011' AND '03/20/2011'

但这不是

SELECT COUNT(*) AS `numrows` 
FROM (`myTable`) 
WHERE DATE_FORMAT(creationDateTime, '%m/%d/%Y') BETWEEN '12/21/2010' AND '03/20/2011'

第一个语句返回行数的'xx',而第二个语句返回'0'

我看到的唯一区别是“开始”日期是 2010 年,“结束”日期是 2011 年。为了测试这是否是我从“12/31/2010”查询的问题,它仍然给了我0 个结果,但是当我将开始日期设置为“2011 年 1 月 1 日”时,它给了我在该时间跨度内创建的记录数。

关于 mySQL 的 BETWEEN 和使用不同年份的日期,我是否遗漏了什么?

感谢您的帮助!

最佳答案

尝试使用日期格式 BETWEEN '2010-12-21' AND '2011-03-20'。同时删除 DATE_FORMAT() 函数。

所以,这个:

SELECT COUNT(*) AS `numrows` 
FROM `myTable` 
WHERE creationDateTime BETWEEN '2010-12-21' AND '2011-03-20'

关于跨越多年的日期之间的 mySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379366/

相关文章:

mysql - 创建表时外键错误(errno 150)

string - 在 Julia 中从日期时间转换为字符串

sql-server - 使用 SSIS for Excel 导入 SQL Server 的日期格式问题

java - SimpleDateFormat toPattern 在 Java 9 中的行为不同

mysql - sql插入一直报错

mysql - 使用模型查询时,Codeigniter 无法使用 Ajax-json_encode

PHP 比较日期时间和时区

mysql - 日期格式 .NET 到 mysql

MySQL:STR_TO_DATE 与 YYWW

php - 如何添加count个搜索结果并显示搜索结果个数?