我正在运行此查询:
SELECT COUNT(*) as num FROM items
WHERE status='public'
AND DATE(dateCreated) >= '01-01-2012'
AND DATE(dateCreated) <= '31-12-2012'
获取 2012 年添加的所有项目的计数。结果:629
但是,如果我将年份更改为 2011 年,我会得到完全相同的结果。
如果我完全删除日期比较,只需执行以下操作:
SELECT COUNT( * ) AS num
FROM items
WHERE STATUS = 'public'
即使表中添加了从 2009 年到 2012 年一直添加的项目,并且每年都应该给出不同的计数,结果也给出了 629 行。
我做错了什么?
dateCreated 列是日期时间列。
最佳答案
试试这个查询:
SELECT COUNT(*) as num FROM items
WHERE status='public'
AND dateCreated >= '2012-01-01'
AND dateCreated <= '2012-12-31'
来自 MySQL docs :
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format
关于mysql - mysql 日期比较结果不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326931/