2013-06-05 68 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