Преобразование даты в текстовом формате в формат даты и времени в T-SQL

У меня есть предоставленный клиентом файл, который загружается в нашу базу данных SQL Server. Этот файл содержит текстовые значения даты, т.е. (05102010), и мне нужно прочитать их из столбца БД и преобразовать их в обычное значение даты и времени = '2010-05-10 00:00:00.000' как часть очистки процесс.

Мы будем очень признательны за любые рекомендации.


person Rob    schedule 10.05.2010    source источник


Ответы (3)


один из способов с помощью

CONVERT(datetime,RIGHT(Column,4) + left(Column,4))

пример

declare @s char(8)
select  @s = '05102010'
select CONVERT(datetime,RIGHT(@s,4) + left(@s,4))
person SQLMenace    schedule 10.05.2010

Пытаться:

SELECT 
    CONVERT(datetime,  RIGHT(YourColumn,4)
                       +LEFT(YourColumn,4)
           ) AS ProperDateTime
    FROM...

рабочий пример:

DECLARE @YourTable table (StringDate char(8))
INSERT @YourTable VALUES ('05102010')
INSERT @YourTable VALUES ('03182010')

SELECT 
    CONVERT(datetime,  RIGHT(StringDate,4)
                       +LEFT(StringDate,4)
           ) AS ProperDateTime
    FROM @YourTable

ВЫХОД:

ProperDateTime
-----------------------
2010-05-10 00:00:00.000
2010-03-18 00:00:00.000

(2 row(s) affected)
person KM.    schedule 10.05.2010

Быстро и грязно:

SELECT
    CONVERT(DATETIME,
        SUBSTRING(col, 1, 2)
        + '/' + SUBSTRING(col, 3, 2)
        + '/' + SUBSTRING(col, 5, 4))
person Sean Bright    schedule 10.05.2010