Преобразовать столбец даты в новый столбец даты UT C - PullRequest
1 голос
/ 30 января 2020

Я написал следующий запрос на SQL БД сервера в , чтобы преобразовать столбец даты и времени в столбец даты UT C.

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

Но я получаю то же самое datetime для обоих столбцов.

Что мне нужно изменить, чтобы это работало?

1 Ответ

2 голосов
/ 30 января 2020

Пожалуйста, попробуйте это:

DATEADD(hh, DATEDIFF(hh, GETDATE(), GETUTCDATE()), datetime)
  • GETDATE() вернет текущее время
  • GETUTCDATE() вернет текущее время UT C время
  • Функция DATEDIFF вычислит разницу между этими двумя датами в часах
  • Функция DATEADD добавит эти часы к вашему текущему времени.

Другой способ через usign 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

Если вы находитесь в ' Pacifi c Стандартное время 'часовой пояс

...