【问题标题】:How to make MySQL() NOW() function use client's timezone?如何使 MySQL() NOW() 函数使用客户端的时区?
【发布时间】:2014-11-09 18:29:05
【问题描述】:

我正在使用NOW() 函数来存储日期和时间,但服务器时区(这是我自己的)显然不适用于整个世界。

我想要now() 始终使用 CLIENT 时区,无论它可能是什么。

如何做到这一点?

【问题讨论】:

    标签: mysql datetime timezone


    【解决方案1】:

    NOW() 在当前执行时区(数据库服务器时区)上执行。您可以使用CONVERT_TZ(dt,from_tz,to_tz) 函数和NOW() 来获得不同的时区表示,例如

    SELECT CONVERT_TZ(NOW(),'GMT','EST'); 
    

    无论哪种方式,除非您确定客户的 TZ 信息;在数据库端,您的数据库服务器无法确定。

    【讨论】:

    • 但我不知道某人的时区可能是什么。
    • 您可以在应用代码中获取该信息并将其传递给此函数。
    • 我真的不能在应用程序中向人们询问他们的 TZ。如果您的意思是使用 JS,那么我还不如从中获取日期,但我不想依赖用户的计算机。
    • 不管怎样,除非你确定了客户的TZ信息;在数据库端,您的数据库服务器无法确定。
    • 您之前的评论是我一直在寻找的答案。将其添加到您的答案中,我会接受。
    猜你喜欢
    • 2010-10-31
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2011-11-08
    相关资源
    最近更新 更多