Чтобы преобразовать значение varchar в формате «ггггммддччммсс» в дату и время в SQL Server, вы можете использовать несколько методов. Вот несколько вариантов:
-
Использование функции ПРЕОБРАЗОВАТЬ:
DECLARE @dateString VARCHAR(14) = '20211217123456'; SELECT CONVERT(DATETIME, STUFF(STUFF(STUFF(@dateString, 9, 0, ':'), 12, 0, ':'), 15, 0, ' ')) -
Использование функции CAST:
DECLARE @dateString VARCHAR(14) = '20211217123456'; SELECT CAST(SUBSTRING(@dateString, 1, 8) + ' ' + SUBSTRING(@dateString, 9, 2) + ':' + SUBSTRING(@dateString, 11, 2) + ':' + SUBSTRING(@dateString, 13, 2) AS DATETIME) -
Использование функций DATEFROMPARTS и TIMEFROMPARTS:
DECLARE @dateString VARCHAR(14) = '20211217123456'; SELECT DATEFROMPARTS(SUBSTRING(@dateString, 1, 4), SUBSTRING(@dateString, 5, 2), SUBSTRING(@dateString, 7, 2)) + TIMEFROMPARTS(SUBSTRING(@dateString, 9, 2), SUBSTRING(@dateString, 11, 2), SUBSTRING(@dateString, 13, 2), 0, 0)