2010-11-11 21 views
1

Je veux prendre la sous-chaîne d'une valeur dans une colonne "2010-11-10 11:59:00" à "2010-11-10":La conversion d'un type de données char en un type de données datetime a abouti à une valeur de date-heure hors plage

SELECT CONVERT(DATETIME, SUBSTRING(CONVERT(VARCHAR(15), CONVERT(DATETIME, export_date, 105)),0,15),101) 
    FROM TABLE 

J'ai écrit la requête suivante, mais il ne se traduit pas cette erreur:

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Répondre

0

SELECT substring (convertir (varchar (15), convertir (varchar (15), export_date, 105)), 0,11) à partir de

+4

Si vous publiez code ou XML, ** S'il vous plaît ** mettre en évidence les lignes dans l'éditeur de texte et cliquez sur le bouton "code" (101 010) sur la barre d'outils de l'éditeur pour bien le mettre en forme et la syntaxe le mettre en évidence! –

3

Essayez quelque chose li ke

SELECT DATEADD(dd,0, DATEDIFF(dd,0,CONVERT(DATETIME, '2010-11-10 11:59:00',101))) 

Sortie

2010-11-10 00:00:00.000 
+0

+1: J'ai passé tout ce temps à formater la question ...:/ –

+0

Hey. Comment allez-vous. Ces questions se présentent sous différents formats, et il est toujours pratique de connaître les astuces de conversion. X-) –