从带有时区的时间戳类型的日期时间值中减去 5 小时

Subtract 5 hours from a datetime value that is type timestamp with timezone

我正在查询具有日期时间列的 table,该值的格式为带时区的时间戳。我试过做一个 select hour(timestamp,-5) as NTime 和它的不同变体,但我得到的最多的是一个错误,指出时间戳不是有效的 name/type。我将正式结束这个....

基本上,我只需要新的别名列值是一个时间戳,比原始 table 中的时间戳晚 5 小时。提前谢谢大家!!

MariaDB / MySQL 没有“带时区的时间戳”数据类型。

DATETIME 是简单的挂钟时间,TIMESTAMP 是 UNIX time_t 时间戳(自 1970-01-01T00:00:00UTC 以来的秒数)。

您可以使用 tz_convert() 将 DATETIME 值从一个时区转换为另一个时区。

SELECT tz_convert('2022-04-08 21:53', 'America/Chicago', 'UTC')

例如。

或者,您可以像这样进行日期运算。

SELECT '2022-04-08 21:53' - INTERVAL 5 HOUR