SQL SELECT * FROM datetime = CURDATE()返回一个空结果集

时间:2012-10-12 03:19:42

标签: mysql sql datetime

谁能告诉我哪里是我的错?通过使用该查询,它应该返回数据具有datetime ='2012-10-12'的行?这是我的reference

我的日期时间栏='YYYY-MM-DD HH:MM:SS',数据类型=日期时间。

我正在使用XAMPP v1.8.0,MySQL v5.5.25a。

4 个答案:

答案 0 :(得分:11)

使用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

{{1}}

答案 1 :(得分:4)

不要在列上使用函数,例如DATE(datetime) - mysql无法使用您的索引。

使用范围几乎肯定更好:

WHERE `datetime` between '2012-01-01 00:00:00' and '2012-01-01 23:59:59'

或仅将DATE部分存储在一个单独的列中(它具有较低的基数并且优化器可以更好地对待它)。

答案 2 :(得分:2)

SELECT * FROM tableName WHERE DATE(datetime) = CURDATE()

答案 3 :(得分:1)

使用mysql中的DATE()将TIMESTAMP格式化为DATE

Select * FROM tablename WHERE DATE(colname) = CURDATE()