【问题标题】:help me understand now() for mysql current time and its time zones帮助我了解 mysql 当前时间及其时区的 now()
【发布时间】:2011-11-16 17:16:48
【问题描述】:

当我插入 mysql 数据库时,我需要帮助了解当我使用 now() 函数(在 mysql 中)时 mysql 如何确定时区。日期时间格式为 YYYY-MM-DD 00:00:00。您如何让用户在他们的位置获得正确的时间?

这个问题有意义吗?

感谢您的宝贵时间!

【问题讨论】:

  • 你指的是php now()函数还是mysql now()函数。只是澄清一下。
  • -1 php中没有now()函数

标签: php mysql datetime time timezone


【解决方案1】:

您的日期时间格式YYYY-MM-DD 00:00:00 没有时区信息,因此与用户所在的时区无关。

NOW()使用系统时间。

【讨论】:

    【解决方案2】:

    now() 函数返回系统时间确定您的服务器的时间和位置! mysql 不能为你做这个,这是你程序的工作!!

    【讨论】:

      【解决方案3】:

      now() 始终引用其时区中的服务器时间。

      如果您同时拥有服务器和用户时区,
      它可以通过函数convert_tz来完成,
      比如

      set @user_time_zone:='+02:00';
      set @server_time_zone:='+08:00';
      
      -- server timezone always come first
      -- as now() is from server time
      SELECT CONVERT_TZ(now(),@server_time_zone, @user_time_zone);
      

      【讨论】:

        【解决方案4】:

        系统时区由 system_time_zone 变量控制。 您可以在mysql提示符下使用以下命令查看当前系统时区

        SELECT @@system_time_zone;
        

        可以在 mysql 服务器选项中使用 --timezone=timezone_name 更改系统时区

        【讨论】:

          猜你喜欢
          • 2011-09-23
          • 1970-01-01
          • 1970-01-01
          • 2016-03-24
          • 1970-01-01
          • 1970-01-01
          • 2011-09-14
          • 2012-05-30
          • 1970-01-01
          相关资源
          最近更新 更多