Как преобразовать дату и время из UTC в местное время - PullRequest
0 голосов
/ 25 октября 2018

Я прошу прощения, если это очень просто, я все еще новичок в SQL и учусь каждый день.Я пытаюсь сделать запрос

SELECT ProjectName,
       RequestNumber,
       ContactId,
       ContactFirstName,
       ContactLastName,
       RequestReceivedDate,
       RequestCloseDate,
       Category,
       SubCategory,
       AssignedResourceId,
       OwningResourceId,
       RequestSource,
       ClosedImmediatelyFlag,
       RequestStatusCode
FROM dbo.system_requests;

НО мои RequestReceivedDate и RequestCloseDate отключены на 5 часов.Я не могу создать функцию, так как я работаю с базой данных поставщиков, поэтому хочу преобразовать UTC в местное время в своем операторе выбора и просто не уверен, что это лучший способ сделать это?

Мысли?

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Итак, я закончил этим заниматься, и это сработало и дало мне то, что я хотел:

           SELECT CONVERT(
                             DATETIME,
                             SWITCHOFFSET(
                                             CONVERT(DATETIMEOFFSET, system_requests.RequestReceivedDate),
                                             DATENAME(TzOffset, SYSDATETIMEOFFSET())
                                         )
                         ) AS RequestReceivedDate
       ),
       (
           SELECT CONVERT(
                             DATETIME,
                             SWITCHOFFSET(
                                             CONVERT(DATETIMEOFFSET, system_requests.RequestCloseDate),
                                             DATENAME(TzOffset, SYSDATETIMEOFFSET())
                                       )
                         ) AS RequestClosedDate
0 голосов
/ 25 октября 2018

SQL Server 2016 имеет поддержку часовых поясов с помощью оператора AT TIME ZONE «UTC».Вы можете сделать это:

SELECT ProjectName,
       RequestNumber,
       ContactId,
       ContactFirstName,
       ContactLastName,
       RequestReceivedDate AT TIME ZONE 'UTC',
       RequestCloseDate AT TIME ZONE 'UTC',
       Category,
       SubCategory,
       AssignedResourceId,
       OwningResourceId,
       RequestSource,
       ClosedImmediatelyFlag,
       RequestStatusCode
FROM dbo.system_requests;

Вы можете выполнить поиск "ВРЕМЕННОЙ ЗОНЫ" в Google.

...