如何仅使用日期从DATETIME列中进行选择?

时间:2012-06-06 22:32:52

标签: mysql sql database datetime

我的桌子上有一个DATETIME列,用于存储创建记录的时间。我想只选择在特定日期创建的记录。如果我尝试:

SELECT * 
FROM myTable
WHERE postedOn =  '2012-06-06'

即使表中有很多行设置为postedOn,它也不会返回任何行 2012-06-06 21:42:022012-06-06 07:55:17,等等。

有什么想法吗?

3 个答案:

答案 0 :(得分:11)

使用DATE标量:

SELECT * 
FROM myTable
WHERE date(postedOn) =  '2012-06-06'

答案 1 :(得分:2)

SELECT *
FROM myTable
WHERE DATE(postedOn) = '2012-06-06'

DATE()返回日期时间字段的日期部分。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date

答案 2 :(得分:1)

通过在日期中添加一天来创建时间范围:

SELECT * 
FROM myTable
WHERE postedOn >= '2012-06-06' and postedOn < '2012-06-07'

这是最有效的方法,因为查询可以在字段上使用索引。