如何在时间戳字段中搜索日期?

时间:2013-07-13 08:34:41

标签: mysql date timestamp

我有一个数据库和一个包含以下属性的表:

Column: Date 
Type: TIMESTAMP 
Attributes: ON UPDATE CURRENT_TIMESTAMP 
Default: CURRENT_TIMESTAMP

因此,每种数据都将以这种格式显示:“2013-07-06 14:32:18”

我正在寻找一个显示在“2013-07-06”中检索行的SQL查询。

我尝试了什么:

select * from posts where date between "2013-07-05 00:00:00" and "2013-07-07 00:00:00";

4 个答案:

答案 0 :(得分:8)

您可以使用MySQL的DATE()功能仅获取TIMESTAMP的日期部分:

SELECT * FROM posts WHERE DATE(date) = '2013-07-06'

但是,这样的查询无法从date列的索引中获益(如果存在);相反,可以使用如下范围:

SELECT * FROM posts WHERE date >= '2013-07-06' AND date < '2013-07-07'

MySQL将隐式地将00:00:00的时间添加到日期文字中,但如果愿意,您可以明确地包含它们。

请注意,BETWEEN ... AND ...包含其操作数,因此BETWEEN "2013-07-05 00:00:00" AND "2013-07-07 00:00:00"将包含2013-07-052013-07-06上的所有记录以及00:00:00上的所有记录2013-07-07

答案 1 :(得分:0)

select * from posts where date(date) = "2013-07-06";

答案 2 :(得分:0)

使用以下查询

select * from posts where date >= "2013-07-06 00:00:00" and date < "2013-07-07 00:00:00";

答案 3 :(得分:0)

你也可以使用它。

select * from posts where date like "2013-07-05%"