Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2011, 10h48   #1
Membre à l'essai
 
Inscription : avril 2010
Messages : 75
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 75
Points : 20
Points : 20
Par défaut Convertir une date française en datetime SQL 2005

Bonjour,
Actuellement j'ai une date sous la forme "mercredi 14 septembre 2011", et je voudrais savoir si il y aurait déja quelque chose d'existant permettant de convertir cette chaine de caractère en datetime ? Ou faut t'il que je la fasse moi même ? (Ce qui ne m'arrangerais pas, mais on fera avec )

Merci d'avance
boubou38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 16h28   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

C'est en fait presque simple, même s'il est vrai que nativement rien ne supporte votre format.
Il suffit de supprimer le nom du jour de la semaine, et de transtyper en datetime :

Code :
1
2
DECLARE @datetime_string varchar(64) = 'mercredi 14 septembre 2011'
SELECT	CAST(RIGHT(@datetime_string, LEN(@datetime_string) - CHARINDEX(' ', @datetime_string)) AS datetime)
Ca fonctionne à l'international : si vous exécutez :

Code :
1
2
DECLARE @datetime_string varchar(64) = 'wednesday september 14, 2011'
SELECT	CAST(RIGHT(@datetime_string, LEN(@datetime_string) - CHARINDEX(' ', @datetime_string)) AS datetime)
Sur une instance SQL Server en Anglais ou après avoir mis l'option de session SET LANGUAGE à us_english, vous avez la bonne date.

Vous pouvez éventuellement en faire une fonction pour en faire une colonne calculée, ce qui vous évitera de calculer la date à chaque fois.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 09h32   #3
Membre à l'essai
 
Inscription : avril 2010
Messages : 75
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 75
Points : 20
Points : 20
Merci, c'est pile poile ce que j'espérais
Je ne m'attendais pas à trouvé exactement ce que j'espérais exactement !!
boubou38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h44.


 
 
 
 
Partenaires

Hébergement Web