Partager vos
astuces Déco

Posez votre question Signaler

SQL Server Convert champ texte en Date [Résolu]

soleil_levant 384Messages postés 15 septembre 2008Date d'inscription 14 avril 2011Dernière intervention - Dernière réponse le 24 juil. 2009 à 13:28
Bonjour,
J'ai un gros problème avec la fonction de SQL Server CONVERT! J'ai un champ de type Texte à caracter contenant une date genre 23072009. Je souhaite le convertir en 23/07/2009 ou autre format mais qui soit Date connaissabel par mes procédures par la suite.
Voici ma sytaxe : select ..., CONVERT(DateTime, BIRTHDATE) As [Date de Naissance] from...
Voici l'erreur de Mon éditeur de Base:
Error 24/07/2009 11:04:24 0:00:00.124 SQL Server Database Error: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. 2 0
Quelqu'un a une solution
Merci beaucoup
Lire la suite 

SQL Server Convert champ texte en Date »

6 réponses
Réponse
+1
moins plus
Bonjour,

Alors l'instruction left(nomcolonne,x) permet de prendre les x premiers caractères d'une colonne à partir de la gauche, donc dans mon exemple les 8 premiers caractères de la colonne BIRTHDATE. Tu as peut-être raison concernant le type de date de SQL server et le type de date de ta colonne.On peut peut-être essayer avec le format ISO (112)
select ..., CONVERT(Datetime,SUBSTRING(BIRTHDATE,5,4)+SUBSTRING(BIRTHDATE,3,2)+LEFT(BIRTHDATE,2),112)
As [Date de Naissance] from...

Donc, ici je prends d'abord l'année (à partir du 5ème caractère sur une longueur de 4), ensuite le mois (3ème et 4ème) et enfin le jour (les 2 premiers), donc dans ton exemple 19840125.
A plus
Ajouter un commentaire
Réponse
+1
moins plus
HOURRAA!!

C'est du tonnerre ça marche nikel!! Christounet tu es LE MEILLEUR!! Vraiment super ta commande substring, (moi je connaissais que mid() de VB) super sujet résolut :D

MErci
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je pense que tu dois indiquer le type de date en format d'entrée, peux-tu essayer
select ..., CONVERT(DateTime, BIRTHDATE,113) As [Date de Naissance] from...

A plus
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ta prompte réponse,
j'ai déja pensé à ça en mettant 120, tjrs la même erreur :(

PS: ma requête tape d'une Vue dont la colonne BIRTHDATE est varchar(100)
Est ce que c'est de la d'ou viens le prob??

Merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Peut-être, essaye alors ce code
select ..., CONVERT(DateTime,left(BIRTHDATE,8),113) As [Date de Naissance] from...

A plus
Ajouter un commentaire
Réponse
+0
moins plus
Tjrs la meme erreur :(
que signifie ton chiffre 8? Tu fais un left pour mettre le colonne birthdate completement à gauche?
PS: Voici une enregistrement quelconque de ma base correspondant le champs BIRTHDATE : 25011984
Pense tu que le problème cé les dates en anglais de SQL Server et les dates en france??

Merci
Ajouter un commentaire
Ce document intitulé « SQL Server Convert champ texte en Date » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Les pires photos ratées
  • Les pires photos ratées

    Intrus qui s'incruste sur la photo, grimaces, moments surprenants... Voici les 30 secrets pour rater ses photos dans les règles de l'art.