正在尝试对TIMESTAMP
字段执行MySQL查询。
我接近于得到正确的结果,但它总是落后3天,当天什么都没有。我相信这与使用带有TIMESTAMP
字段的BETWEEN
有关。
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
发布于 2018-06-05 08:08:31
这是因为您使用的不仅仅是NOW()
,而是DATE(NOW())
。这丢弃了一天中的时间,所以它从一天的开始减去2小时(即前一天晚上10点),而不是现在之前的2小时。
AND (`placed_ts` BETWEEN
DATE_SUB(DATE(NOW()), INTERVAL 3 DAY)
AND DATE_SUB(NOW(), INTERVAL 2 HOUR))
https://stackoverflow.com/questions/50690118
复制相似问题