尝试在TIMESTAMP
字段上进行MySQL查询。
我接近得到正确的结果,但它总是只落后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
答案 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))