2013-06-05 4 views
2

У меня есть поле в моей базе данных, которая содержит данные, как это:Извлечение даты из SQL Строка

'DUES 1/4/2013' 
'DUES 2/18/2013' 
'DUES 3/25/2013' 
... 

То, что я хочу сделать, это извлечь дату часть строки и брось в действительный объект SQL Date , Как я могу это сделать? Я использую SQL Server 2000.

+2

Попробуйте 'CAST (REPLACE (строка, ' DUES ',' ') AS DATETIME) ' –

+0

@TI - По какой-то причине он выдает ошибку. Говорит, что он не может преобразовать строку в дату. – Icemanind

+0

@TI - В частности, «Конверсия не удалась при преобразовании даты и/или времени из символьной строки». – Icemanind

ответ

1

Попробуйте один -

запрос:

DECLARE @temp TABLE (col VARCHAR(50)) 

INSERT INTO @temp (col) 
    SELECT 'DUES 1/4/2013' 
    UNION ALL 
    SELECT 'DUES 2/18/2013' 
    UNION ALL 
    SELECT 'DUES 3/25/2013' 
    UNION ALL 
    SELECT NULL 

SELECT 
    [date] = 
     CASE WHEN col IS NOT NULL 
      THEN CAST(SUBSTRING(col, 5, LEN(col)) AS DATETIME) 
     END 
FROM @temp 

Результаты:

date 
----------------------- 
2013-01-04 00:00:00.000 
2013-02-18 00:00:00.000 
2013-03-25 00:00:00.000 
NULL 
Смежные вопросы