2013-06-05 4 views
2

J'ai un champ dans ma base de données qui contient des données comme celle-ci:Extraction de la date de SQL chaîne

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

Ce que je veux faire est d'extraire la partie date de la chaîne et de le jeter dans un objet Date SQL valide . Comment puis-je faire ceci? J'utilise SQL Server 2000.

+2

'Essayez CAST (REPLACE (str, ' DUES ',' ') AS DATETIME) ' –

+0

@TI - Il génère une erreur pour une raison quelconque. Dit qu'il ne peut pas convertir la chaîne à une date. – Icemanind

+0

@TI - Plus précisément "La conversion a échoué lors de la conversion de la date et/ou de l'heure de la chaîne de caractères." – Icemanind

Répondre

1

Essayez celui -

Requête:

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 

Résultats:

date 
----------------------- 
2013-01-04 00:00:00.000 
2013-02-18 00:00:00.000 
2013-03-25 00:00:00.000 
NULL 
Questions connexes