SQL Server Convert champ texte en Date

Résolu
soleil_levant Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   -  
soleil_levant Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

6 réponses

soleil_levant Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   32
 
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
2
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
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
1
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
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
0
soleil_levant Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   32
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

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

A plus
0
soleil_levant Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   32
 
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
0