是否有SQL函数可根据日期转换为PST或PDT?

是否有SQL函数可根据日期转换为PST或PDT?,sql,postgresql,timezone,dst,Sql,Postgresql,Timezone,Dst,我想将时间从pacific转换为UTC。但是,我必须首先根据日期将时间转换为PST或PDT。是否有SQL函数可以实现这一点,或者是否有人对创建此函数有任何建议?您提供的链接作为时间戳的指南几乎毫无用处。如果要使用时区,请将时间戳存储在带有时区的时间戳字段中。时区实际上不会被存储,但时间戳将被存储为UTC。无论何时输入时间戳,它都会旋转为UTC值。这使得以后更容易处理价值。如果您想考虑到DST转换,您需要使用完整的时区名称,例如US/Pacific,因为它们涵盖了构成标准/夏令时时区的两个偏移量(

我想将时间从pacific转换为UTC。但是,我必须首先根据日期将时间转换为PST或PDT。是否有SQL函数可以实现这一点,或者是否有人对创建此函数有任何建议?

您提供的链接作为时间戳的指南几乎毫无用处。如果要使用时区,请将时间戳存储在
带有时区的时间戳
字段中。
时区
实际上不会被存储,但时间戳将被存储为
UTC
。无论何时输入
时间戳
,它都会旋转为
UTC
值。这使得以后更容易处理价值。如果您想考虑到
DST
转换,您需要使用完整的时区名称,例如
US/Pacific
,因为它们涵盖了构成标准/夏令时时区的两个偏移量(
PST/PDT
)。正如您发现的,使用偏移量
PST(-08)
PDT(-07)
可以获得固定的偏移量,而不考虑日期。

您使用的是哪种dbms?说到日期/时间,许多产品远远不符合ANSI SQL。我不确定我使用的是什么dbms。我怎样才能找到这些信息?你是在建议我创建自己的函数吗?大多数数据库都有自己的函数,不幸的是不同的函数。谢谢!我有PostgreSQL 10.16(Ubuntu 10.16-1.pgdg16.04+1)
在时区“pst”在时区“utc”在时区“pdt”在时区“utc”将给你不同的结果,相差1小时。和
选择时区“utc”的“美国/洛杉矶”的时间戳“2021-06-01 11:23:39”
返回与“pdt”相同的值,正如预期的那样。