我有一张coupons的桌子。
每张优惠券都有start date timeand end date time
我的时区是+30:00
在晚上9:16(根据我的日期类型为21:16),我运行此查询;

SELECT * FROM coupons WHERE NOW() BETWEEN coupon_date_start AND coupon_date_end

我得到了这个结果;
php - 两个日期时间时区之间的MySQL Now()-LMLPHP
底部的结果应该过期而不显示。那个项目的结束时间是晚上9:14,我在晚上9:16运行这个。
你知道我该怎么解决吗?(我还为那张桌子设置了时区)
我的表模式;
php - 两个日期时间时区之间的MySQL Now()-LMLPHP
我在mysql中将时区设置为+3utc,并将datetime改为timestamp列。

最佳答案

确保MySQL时区,您可以使用CONVERT_TZ函数

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

关于php - 两个日期时间时区之间的MySQL Now(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50890582/

10-16 13:45