php - MySQL Now() 在两个日期时间时区之间
问题描述
我有一张桌子coupons
。每张优惠券都有start date time
and end date time
。我的时区是 +30:00
在晚上 09:16(根据我的日期类型是 21:16),我运行了这个查询;
SELECT * FROM coupons WHERE NOW() BETWEEN coupon_date_start AND coupon_date_end
我得到了这个结果;
底部的结果应该是过期的,不会出现。该项目的结束时间是 09:14 PM,我在 09:16 PM 运行。
知道如何解决这个问题吗?(我还为该表设置了我的时区)
我通过在 mysql 中将我的时区设置为 +3 UTC 来修复,并且我还将日期时间更改为列的时间戳。
解决方案
确保你的 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
推荐阅读
- reactjs - 用交换机反应路由器错误不知道这里出了什么问题
- javascript - 倒计时计时器,直到 WooCommerce 单品页面上的产品销售结束
- unit-testing - NSubstitute.Exceptions.CouldNotSetReturnDueToTypeMismatchException:无法为 IDisposable.Dispose 返回 Task`1 类型的值(预期类型为 Void)
- ruby - '大写!不在Ruby中改变变量?
- angular - Angular: If this option in dropdown show this div
- javascript - 使用 HTML input=file 表单重试失败的文件上传
- ocaml - OCaml 中的循环引用函数
- python - on_server_join 没有响应。不和谐.py
- android - 使用 okhttp 下载 mp3 文件会产生损坏的文件
- c# - 文本文件的安全列表并使用 json 读取