【问题标题】:How to convert MySQL timestamp to custom format with timezone?如何使用时区将 MySQL 时间戳转换为自定义格式?
【发布时间】:2015-03-28 17:33:49
【问题描述】:

如何在 MySQL 中将时间戳转换为带有时区的自定义格式化字符串?

这就是我现在选择时间戳的方式。它的格式正确,但缺少时区。 updated 是时间戳字段的名称。

SELECT DATE_FORMAT(updated, '%e.%c.%Y %T') AS updated FROM table;

返回这样的字符串:

29.1.2015 12:43:16

然后我尝试像这样添加时区,但我得到 NULL 作为返回值。

SELECT DATE_FORMAT(CONVERT_TZ(updated, 'GMT', 'Europe/Helsinki'), '%e.%c.%Y %T') AS updated FROM table;

【问题讨论】:

  • 关于CONVERT_TZThis function returns NULL if the arguments are invalid.Check your timezones.。加载了吗?
  • 是的,这些时区似乎都无效。如果我用 '-0:00' 替换它们,一切正常

标签: mysql sql datetime timezone timestamp


【解决方案1】:

我使用 1383123123 代替时间戳字段

Select  FROM_UNIXTIME(1383123123);

结果是'2013-10-30 10:52:03'

Select  CONVERT_TZ(FROM_UNIXTIME(1383123123), '+00:00', '+02:00')

结果是'2013-10-30 12:52:03'

“欧洲/赫尔辛基”时区表示“gmt+2”

【讨论】:

  • 我知道可以使用数值,但不会考虑夏令时。我以为有一个函数可以自动处理它,但我想没有。
  • 一个你可能看过的有趣话题stackoverflow.com/questions/1646171/…
猜你喜欢
  • 2016-03-08
  • 2012-12-03
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
相关资源
最近更新 更多