Salut,
Comment formater l'affichage d'un champs date de la forme '20091201 ' sous la forme ' 01122009 ' sous Sql Server 2005 ?
Je rajoute que dans la base le champs à formater est de type decimal (8).
Salut,
Comment formater l'affichage d'un champs date de la forme '20091201 ' sous la forme ' 01122009 ' sous Sql Server 2005 ?
Je rajoute que dans la base le champs à formater est de type decimal (8).
Bonsoir,
Pourquoi ce choix de decimal ?
Vous voulez une chaîne en sortie ?
Vous trouverez sans doute votre bonheur (je parle de SQL) ici
@+
Bonjour,
J'ai essayé pas mal de format de conversion , j'ai tenté ceci entre autres pour test :
mais j'ai toujours le même format AAAAMMDD .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT CONVERT(DATETIME,'05/08/2004',105)
y'a t-il un certain paramétrage au niveau de SQL Server 2005 à modifier ?
Bonjour,
En effet, pourquoi avoir choisi le type DECIMAL pour stocker des entiers ?
Avec une précision de 8, vous utilisez 5 octets, alors qu'avec un INT vous en utiliseriez 4
Si vous souhaitez passer au type INT :
Comme vous avez pu le voir dans la documentation de la fonction CONVERT(), le style d'affichage 105 est jj-mm-aaaa, donc ce n'est pas ce donc vous avez besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE maTable ALTER COLUMN maColonne INT
Pourquoi convertir en DATETIME alors que vous voulez un DECIMAL(8) ?
Suivant le choix que vous avez fait plus haut :
Si vous devez traiter une table, je vous conseille de créer une fonction...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT CAST(REPLACE(CONVERT(CHAR(10), CAST('20091201' AS DATETIME), 103), '/', '') AS DECIMAL(8)) SELECT CAST(REPLACE(CONVERT(CHAR(10), CAST('20091201' AS DATETIME), 103), '/', '') AS INT)
@++![]()
Bonjour,
Merci elsuket pour votre aide.
J'ai changé le type des données en Int.
Le problème maintenant que ça bloque au niveau de la conversion en Datetime avec le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3Une erreur de dépassement arithmétique s'est produite lors de la conversion de expression en type de données datetime.
Bizarre, je viens d'essayer avec une date de l'année 9999, la conversion se fait proprement ...
Sauriez-vous quelle date donne ceci ?
Il reste un autre problème : si le jour est inférieur à 10, alors on obtient en entier qui représente la date, mais "codée" sur 7 chiffres ...
Ce que je ne comprends toujours pas, c'est pourquoi vous vous échinez à stocker des dates avec des types de données qui ne sont pas conçus pour les supporter ...
@++![]()
Partager