将日期列转换为新的 UTC 日期列

Convert date column to new UTC date column

我在 SQL 服务器数据库上编写了以下查询,以 将日期时间列转换为 UTC 日期列。

select datetime
       , dateadd(minute,-datepart(tz,datetime),datetime) datetime_dt_utc
from table1

但是我得到的两列的日期时间相同。

我需要更改什么才能使其正常工作?

请试试这个:

DATEADD(hh, DATEDIFF(hh, GETDATE(), GETUTCDATE()), datetime)
  • GETDATE()会return当前时间
  • GETUTCDATE() 将返回当前 UTC 时间
  • DATEDIFF 函数将计算这两个日期时间之间的时差
  • DATEADD 函数会将此时间添加到您当前的日期时间。

另一种方法是使用 AT TIME ZONE

SELECT datetime AT TIME ZONE 'UTC' from table1

您可以通过以下方式查看您的时区:

select CURRENT_TIMEZONE ( )  

并使用这个:

SELECT datetime  AT TIME ZONE 'Pacific Standard Time' AT TIME ZONE 'UTC' 
from table1

如果您在 'Pacific Standard Time' 时区