我有一个非常简单的表,其中包含一个存储UTC datetime
值的start_date字段(timestampz
)。我需要返回表中包含的日期,并根据British Summer Time
(BST)进行调整,但我遇到的问题是,无论UTC
日期的值如何,AT TIME ZONE BST
都会将其添加1小时;如果日期发生在February
中(BST开始之前),则UTC
值为正确值。如果日期值来自March
(BST启动后),则UTC
值需要添加+01
。
表格数据
2014-02-16 00:00:000+00
2014-04-16 00:00:000+00
SELECT start_date AT TIME ZONE 'BST' from t1
将+01小时添加到两个值
2014-02-16 00:01:000
2014-04-16 00:01:000
有没有一种简单的方法可以实现以下目标
2014-02-16 00:00:000
2014-04-16 00:01:000
BST
根据定义是UTC+01:00
。因此,它按预期工作。使用Europe/London
获得您想要的结果。