【问题标题】:MySQL datetime: insert a date with timezone offsetMySQL datetime:插入带有时区偏移的日期
【发布时间】:2011-11-30 20:56:34
【问题描述】:

我尝试在“日期”中插入时间戳:

INSERT INTO dates VALUES (4, "2011-10-04 12:58:36 -0600")

4 只是一个 ID。在表格中插入为:

2011-10-04 12:58:36 or 0000-00-00 00:00:00

所以我的问题是,时间差 -0600 丢失了。我怎么也能插入呢?

【问题讨论】:

  • MySQL 日期/日期时间字段不支持时区。它们只是原始日期和时间值。您必须将时区单独存储在另一个字段中。最好的办法是将所有日期/时间存储为 UTC 值,然后在检索时根据需要进行调整。

标签: mysql datetime date


【解决方案1】:

您可以使用 SUBSTR() 将其切断并使用 CONVERT_TZ() 进行转换。

类似的东西

INSERT INTO table_name  CONVERT_TZ(SUBSTR('2011-10-04 12:58:36 -0600',1,19),'+00:00',SUBSTR('2011-10-04 12:58:36 -0600',20));

【讨论】:

  • ":" 在时区偏移中是必需的,不允许有空格。 CONVERT_TZ(SUBSTR('2011-10-04 12:58:36 -06:00',1,19),'+00:00',SUBSTR('2011-10-04 12:58:36 -06:00',21))
猜你喜欢
  • 1970-01-01
  • 2014-05-24
  • 2019-01-24
  • 1970-01-01
  • 2014-04-24
  • 2021-07-17
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多