如何在不支持时区表的服务器上的查询中支持日期时间比较

发布于 2024-12-18 13:10:02 字数 444 浏览 2 评论 0原文

我有这个查询:

SELECT * 
FROM article 
WHERE online= 1 
AND IF(ISNULL(dateHOnline), dateHCreation, dateHOnline) <= Convert_TZ(Now(), "SYSTEM", "Europe/Paris")

但是 Convert_TZ(Now(),"SYSTEM","Europe/Paris") 返回 null,可能是因为我的 mysql 服务器不支持时区表(输入 +02:00 返回日期时间)。

那么我如何修改该请求(它是一个视图)以在比较中实现夏令时功能。我想仅仅使用 +02:00 而不是 Europe/Paris 是不够的。

PS:我无法控制mysql引擎

I have this query:

SELECT * 
FROM article 
WHERE online= 1 
AND IF(ISNULL(dateHOnline), dateHCreation, dateHOnline) <= Convert_TZ(Now(), "SYSTEM", "Europe/Paris")

But Convert_TZ(Now(),"SYSTEM","Europe/Paris") returns null, probably because my mysql server does not support timezone tables (putting +02:00 return a datetime).

So how can I modify that request (it's a VIEW) to implement the daylight saving feature in the comparison. I guess that just putting +02:00 instead of Europe/Paris would not be enough.

PS : I do not have control over the mysql engine

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

救星 2024-12-25 13:10:02

您需要做的是将时区信息加载到mysql。

mysql_tzinfo_to_sql tz_dir

What you need to do is to load timezone information into mysql.

mysql_tzinfo_to_sql tz_dir
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文