因此,对于过去24小时的查询,我使用类似这样的内容
SELECT COUNT(*) AS cnt FROM `mytable` WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 DAY)
其中timestamp
是带有时间戳的表字段。
但我怎样才能得到2天前和昨天之间的间隔。 所以
今天是24岁。我希望在22日(上午00:00)和23日(上午00:00)之间进行查询
答案 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天前。