Firebird 4 可以将纪元转换为日期时间并考虑时区吗?
示例:
时区为 CTE (+01:00)。
SELECT
EPOCH,
SUBSTRING(CAST(DATEADD(SECOND,CAST(EPOCH AS BIGINT),TIMESTAMP '1970-01-01 00:00:00') AS VARCHAR(24)) FROM 1 FOR 19) AS DATETIME
FROM unix_epoch
输出
纪元 | 日期时间 |
---|---|
86400 | 1970-01-02 00:00:00 |
所需输出
纪元 | 日期时间 |
---|---|
86400 | 1970-01-02 01:00:00 |
你使用了太多的演员表,一切都变得更简单:
select dateadd(second, epoch, timestamp '1970-01-01 UTC') at time zone '+01:00' from unix_epoch;
使用时区名称:
select dateadd(second, epoch, timestamp '1970-01-01 UTC') at time zone 'CET' from unix_epoch;