将日期列转换为新的 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' 时区
我在 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' 时区