我有coupons
的表格。
每张优惠券都有start date time
and end date time
。
我的时区是+30:00
在晚上9:16 (根据我的日期类型21:16),我运行此查询;
SELECT * FROM coupons WHERE NOW() BETWEEN coupon_date_start AND coupon_date_end
我得到了这个结果;
底部的结果应该过期而不会出现。那个项目的结束时间是09:14 PM,我在晚上9:16运行。
任何想法我该如何解决这个问题? (我还为该表设置了我的时区)
我通过在mysql中将我的时区设置为+3 UTC进行修复,并且还将日期时间更改为列的时间戳。
答案 0 :(得分:1)
确保您的MySQL时区,您可以使用CONVERT_TZ
功能
SELECT *
FROM coupons
WHERE CONVERT_TZ(NOW(),'+00:00','+03:00') BETWEEN coupon_date_start AND coupon_date_end
sqlfiddle:http://sqlfiddle.com/#!9/d0578e/1
答案 1 :(得分:0)
SELECT *
FROM coupons
WHERE CONVERT_TZ(NOW(),'+00:00','+03:00') BETWEEN coupon_date_start AND coupon_date_end
CONVERT_TZ
sqlfiddle:http://sqlfiddle.com/#!9/d0578e/1