MySQL TIMESTAMP BETWEEN大约2小时前和3天前

时间:2018-06-04 23:34:16

标签: mysql timestamp between

尝试在TIMESTAMP字段上进行MySQL查询。

我接近得到正确的结果,但它总是只落后3天,当天没有任何结果。我认为这与将BETWEENTIMESTAMP字段一起使用有关。

SELECT
    billing_first_name,
    cart_id,
    placed_ts,
    s_email           
FROM   `orders`
WHERE `paypal_response` IS NULL
   AND `authorize_response` IS NULL
   AND `s_email` IS NOT NULL
   AND (`placed_ts` BETWEEN
        DATE_SUB(DATE(NOW()), INTERVAL 3 DAY)
        AND DATE_SUB(DATE(NOW()), INTERVAL 2 HOUR))     
GROUP BY `cart_id`
ORDER BY placed_ts DESC

1 个答案:

答案 0 :(得分:2)

这是因为您使用的是DATE(NOW()),而不仅仅是NOW()。这会丢弃一天中的时间,因此它从当天开始减去2小时(即在前一天晚上10点撤回),而不是在此之前的2小时。

AND (`placed_ts` BETWEEN
    DATE_SUB(DATE(NOW()), INTERVAL 3 DAY)
    AND DATE_SUB(NOW(), INTERVAL 2 HOUR))