Конвертировать CMMDDYY в дату в SQL Server - PullRequest
0 голосов
/ 16 июня 2011

Если у меня есть строка даты в формате CMMDDYY

C = 0, 1 или 2, где 0 представляет 19, 1 представляет 20 и 2 представляет 21

Пример:

1022511 будет 25.02.2011 в формате мм / дд / гггг.

Есть ли способ преобразовать его в формат мм / дд / гггг на сервере sql?

CMMDDYY даже правильный формат даты?Я не нашел много информации об этом.

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Алгоритм Года прост: (19 + int(C))*100 + int(yy)

Попробуйте:

declare @st nvarchar(7)
set @st = '1030609'

select 
    cast(
        substring(@st,2,2) + '/' 
        + substring(@st,4,2) + '/' 
        + cast((19 + cast(substring(@st,1,1) as int) )* 100 
                       + cast(substring(@st,6,2) as int) as nvarchar)
    as datetime)

Это выводит:

enter image description here

1 голос
/ 16 июня 2011

Это не похоже на встроенный формат даты, но вы сможете найти его на msdn, если оно есть. Если нет, вы можете написать функцию на сервере SQL, которая анализирует строку в этом формате в объект DateTime

...