mysql时间戳介于2小时前和3天前

c8ib6hqw  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(481)

尝试在 TIMESTAMP 现场。
我接近得到正确的结果,但它总是只落后3天,没有在今天。我相信这和利用 BETWEEN 用一个 TIMESTAMP 现场。

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
8iwquhpp

8iwquhpp1#

因为你在用 DATE(NOW()) 而不仅仅是 NOW() . 这将丢弃一天中的时间,因此它从一天的开始减去2小时(即前一天的晚上10点),而不是现在之前的2小时。

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

相关问题