Как в TSQL сконвертировать время заданное в виде строки с timezone в datetime?

Как в TSQL сконвертировать время заданное в виде строки с timezone в datetime?

SELECT CONVERT(datetime, '2006-12-12T23:45:12.000-08:00', 127)

Conversion failed when converting date and/or time from character string.

Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

Пожалуйста, попробуйте следующее решение.

SQL Server 2016 и более поздние версии.

SQL

-- DDL and sample data population, start
DECLARE @var DATETIMEOFFSET(3) = '2006-12-12T23:45:12.000-08:00';
-- DDL and sample data population, end

SELECT @var AS [Before]
    , CAST(@var AS DATETIME) AS [After]
    , @var AT TIME ZONE 'Russian Standard Time' AS [Local]
    , CAST(@var AT TIME ZONE 'Russian Standard Time' AS DATETIME) AS [LocalDateTime];

SELECT * FROM sys.time_zone_info
ORDER BY name;

SELECT @@VERSION;
→ Ссылка