2天前在mysql中查询

时间:2013-01-24 09:16:04

标签: mysql sql

因此,对于过去24小时的查询,我使用类似这样的内容

SELECT COUNT(*) AS cnt FROM `mytable` WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 DAY)

其中timestamp是带有时间戳的表字段。

但我怎样才能得到2天前和昨天之间的间隔。 所以

今天是24岁。我希望在22日(上午00:00)和23日(上午00:00)之间进行查询

5 个答案:

答案 0 :(得分:20)

WHERE timestamp BETWEEN 
        DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)
         AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY) 

答案 1 :(得分:4)

你也可以用减去的间隔尝试DATE_ADD;)

WHERE timestamp BETWEEN 
        DATE_ADD(DATE(NOW()), INTERVAL -2 DAY)
         AND DATE_ADD(DATE(NOW()), INTERVAL -1 DAY) 

答案 2 :(得分:3)

使用Interval

WHERE `timestamp`
    BETWEEN DATE_SUB(NOW(), INTERVAL 2 DAY)
    AND DATE_SUB(NOW(), INTERVAL 1 DAY)

答案 3 :(得分:1)

尝试BETWEEN ::

SELECT 
COUNT(*) AS cnt 

FROM `mytable` 

WHERE timestamp BETWEEN DATE_SUB(NOW(), INTERVAL 2 DAY) and DATE_SUB(NOW(), INTERVAL 1 DAY)

答案 4 :(得分:1)

如果您想在1月22日(00:00 AM)和1月22日(11:59 PM)之间进行查询

where DATE(timestamp) = DATE_SUB(DATE(now()), INTERVAL  2 day);

示例: timestamp = 2020-02-24 12:07:19并且Date(timestamp)是2020-02-24,并且当我们使用now()时,DATE(now())输出是带有时间的当前日期,然后输出是仅Date,< / p>

DATE_SUB(DATE(now()), INTERVAL  2 day)

是2天前。