Преобразование значения Varchar «ггггммддччммсс» в Datetime в SQL Server

Чтобы преобразовать значение varchar в формате «ггггммддччммсс» в дату и время в SQL Server, вы можете использовать несколько методов. Вот несколько вариантов:

  1. Использование функции ПРЕОБРАЗОВАТЬ:

    DECLARE @dateString VARCHAR(14) = '20211217123456';
    SELECT CONVERT(DATETIME, STUFF(STUFF(STUFF(@dateString, 9, 0, ':'), 12, 0, ':'), 15, 0, ' '))
  2. Использование функции 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)
  3. Использование функций 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)