MySql - 以UTC格式选择TimeStamp列

Mic*_*hel 14 mysql utc

在我的Mysql 5.0 DB中,我有一个列来控制LastUpdated信息.Column是TimeStamp,MySql自动更新数据.

我正在尝试以UTC格式选择此列.

问题是服务器设置为美国日期时间.根据MySql文档,数据库以UTC格式存储信息,但是当我想显示信息时,它会将其转换为服务器的时间.

有没有办法做SELECT命令避免这种转换?

Tim*_*nen 36

SELECT 
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime` 
FROM `table_name`
Run Code Online (Sandbox Code Playgroud)

我在这里做了一个备忘单:MySQL的时区应该设置为UTC吗?

  • @mcmillab:在后备星期日,有两个重叠的时间用相同的本地时间表示。从凌晨 1 点到凌晨 2 点有一个小时,然后时钟会倒退,然后还有另一个小时,在当地时间也表示为凌晨 1 点到凌晨 2 点。作为演示,请考虑:`SELECT CONVERT_TZ('2011-11-06 06:11:00','UTC','US/Central'), CONVERT_TZ('2011-11-06 07:12:00',' UTC','US/Central');` 和 `SELECT CONVERT_TZ('2011-11-06 01:11:00','US/Central','UTC'), CONVERT_TZ('2011-11-06 01: 12:00','美国/中部','UTC');` (2认同)

fiv*_*git 6

除了更改服务器的默认时区外,还可以通过执行以下SQL语句来调整每个连接的时区:

SET time_zone = timezone;
Run Code Online (Sandbox Code Playgroud)

其中timezone是时区的名称(请参阅MySQL文档).

或者,您也可以使用该CONVERT_TZ函数将时间戳转换为不同的时区.