2013-06-05 93 views
2

我在我的數據庫中包含這樣的數據的字段:從SQL提取日期字符串

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

我想要做的是提取字符串的日期部分,並把它轉換成一個有效的SQL Date對象。我怎樣才能做到這一點?我使用的是SQL Server 2000中

+2

嘗試'CAST(REPLACE(STR「 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