【问题标题】:Convert_tz on Now() returns error现在()上的 Convert_tz 返回错误
【发布时间】:2017-01-14 01:18:13
【问题描述】:

我正在尝试向表中插入一行并包含一个伪时间戳(该字段是日期时间类型而不是时间戳):

INSERT INTO CustomFieldValues 
    (CustomField, Name
    , Description, SortOrder
    , Creator, Created
    , LastUpdatedBy, LastUpdated
    , Category)
VALUES
    (99, 'Value Ninety Nine'
     , '', 1001
     , 8809, now()
     , 8809, now()
     , 'Cat1');

如果我插入 now() 的值,日期时间是本地时间,而所有其他行都是 UTC。

如果我尝试使用 Convert_tz 将 Now 转换为 UTC 时间,我会得到 NULL:

SELECT convert_tz(now(), '-08:00', '+00.00') as UTC_Time

UTC_Time
--------------------
NULL

为什么这不起作用?我究竟做错了什么? 谢谢。

【问题讨论】:

  • select convert_tz(cast(now() as datetime), '-08:00', '+00.00') 也返回NULL
  • addtime(now(), '08:00:00') 给了我正确的时间,但感觉不优雅......还有其他想法吗?

标签: mysql sql datetime utc


【解决方案1】:

SELECT convert_tz(now(), '-08:00', '+00:00') 因为用于将 TZ 转换为 TZ chouse 是 +00:00

【讨论】:

    【解决方案2】:

    你需要在mysql中加载时区表

    shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
    

    更多 http://dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html

    【讨论】:

      猜你喜欢
      • 2013-01-05
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多