mysql - mysql 日期比较结果不正确

标签 mysql database

我正在运行此查询:

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/

相关文章:

c# - 将数据从一个数据库复制到另一个数据库 - 内存不足异常

mysql - 在MySQL中添加两行不同的表

php - 使用表 B 中的信息更新表 A(其中包含重复信息)

sql - SQL数据库中的交叉表依赖性/约束

mysql - 在某些情况下语句之间缺少索引

database - Oracle XE 数据库配置失败

c# - 如何加密 SQLite 数据库文件 ".s3db"?

python - 获取 "Can' t 连接到 '203.171.xx.xx' 上的 MySQL 服务器(13)“当尝试在 cgi 中使用 python 连接到远程 sqlserver 时

c# - 如何确保无间隙和安全的发票编号生成(法律问题)

mysql - JOIN 语句中的多个 "ON"如何工作