谁能告诉我我的错误在哪里?通过使用该查询,它应该返回一些数据具有 datetime = '2012-10-12' 的行,对吗?这是我的参考
我的日期时间列 = 'YYYY-MM-DD HH:MM:SS',数据类型 = 日期时间。
我正在使用 XAMPP v1.8.0、MySQL v5.5.25a。
尝试使用CAST
_ datetime
_date
DATE()
SELECT *
FROM tableName
WHERE DATE(`datetime`) = DATE(CURDATE())
YYYY-MM-DD HH:MM:SS
不等于YYYY-MM-DD
2012-01-01 12:12:12 is not equal to 2012-01-01 00:00:00
不要在你的列上使用函数,例如DATE(datetime)
- mysql 不能使用你的索引。
使用范围几乎肯定会更好:
WHERE `datetime` between '2012-01-01 00:00:00' and '2012-01-01 23:59:59'
或仅将 DATE 部分存储在单独的列中(基数较低,优化器会更好地处理)。
SELECT * FROM tableName WHERE DATE(datetime) = CURDATE()
使用DATE()
from mysql 将 TIMESTAMP 格式化为 DATE
Select * FROM tablename WHERE DATE(colname) = CURDATE()