Comment convertir un datetime ? - SQL/NoSQL - Programmation
Marsh Posté le 22-09-2008 à 11:09:09
Si je me souviens en ce qui concerne sql server
convert(char(10),madate_endatetime,103)
ça te converti madate_endatetime en char(10),
le paramètre 103 te donne le format dd/mm/yyyy
101,102 ...ça serait un autre format
Marsh Posté le 22-09-2008 à 11:44:38
oui mais j'ai beau le mettre n'importe ou dans ma requete ca ne marche pas, j'ai toujours des erreurs j'ai essayé ca par exemple:
SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, convert(varchar,A.prom_date_debut,103),A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(""ss"",A.prom_date_debut,getdate())>=0 and DATEDIFF(""ss"",A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid
ca me fait cette erreur :
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot use empty object or column names. Use a single space if necessary.
Marsh Posté le 22-09-2008 à 15:23:45
A.prom_date_debut c'est quoi comme type de champ ?
Et ça ...ça te donne quoi ?
SELECT
convert(char(10),A.prom_date_debut,103)
FROM prom_prod A
ou ça ?
SELECT
convert(char(10),getdate(),103)
FROM prom_prod
Marsh Posté le 22-09-2008 à 17:37:53
c'est quoi ce ""ss"" ?
(parceque ça, clairement ça marche pas)
'ss' devrait aller beaucoup mieux
Marsh Posté le 25-09-2008 à 09:23:27
MagicBuzz --> c'est parceque c'était dans mon code asp donc j'ai du mettre des double guillemets
vttman2--> SELECT
convert(char(10),A.prom_date_debut,103)
FROM prom_prod A
ca fonctionne mais il ne me prend pas le nom de mon champs , donc quand j'appelle mon champs dans mon code j'ai ce message d'erreur :
"Item cannot be found in the collection corresponding to the requested name or ordinal."
Marsh Posté le 25-09-2008 à 09:40:32
Tu peux redonner ta requête final et comment tu l'appelles
dans ton code ?
Marsh Posté le 25-09-2008 à 10:06:41
c'est bon j'ai créer une fonction qui me converti la date en data francaise et inversement pour updater la base.
ma requete a la base c'est ca :
SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, A.prom_date_debut ,A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(ss,A.prom_date_debut,getdate())>=0 and DATEDIFF(ss,A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid
Pour l'appelle j'utilise toujours la meme fonction pour toutes mes pages et pas de problèmes
Marsh Posté le 25-09-2008 à 17:46:41
en sql, le séparateur de chaîne, c'est pas " mais '
normal que ça plante
Marsh Posté le 26-09-2008 à 09:30:27
oui je suis d'accord.
Mais le probleme ne viens plus de la maintenant.
Si je fait
SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, convert(char(10),A.prom_date_debut,103) ,A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(ss,A.prom_date_debut,getdate())>=0 and DATEDIFF(ss,A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid
si j'appele a.prom.date.debut dans mon code asp , il me dit que le nom du champs n'existe pas (comme si je l'avais pas appelé dans ma requete)
Marsh Posté le 26-09-2008 à 10:49:39
et ceci
=>
convert(char(10),A.prom_date_debut,103) as DAT_DEB_FORMAT
en utilisant ensuite dans ton code DAT_DEB_FORMAT ...
Marsh Posté le 26-09-2008 à 11:47:36
+1
quand tu fais une oppération sur un champ, il change de nom, il faut donc l'aliaser pour pouvoir l'appeler depuis le code
Marsh Posté le 29-09-2008 à 09:10:46
Ah ok c'est pour ca que ca ne fonctionnais pas alors.
Je vous remercie, je vais aller de suite changer ca dans ma requete et éviter de me servir du code asp pour changer le format de ma date.
Ca seras + propre
Marsh Posté le 22-09-2008 à 10:30:54
Bonjour,
Ca fait 1 heure que j'essai de convertir ma date à chaque fois il me fait des erreurs, je doit mal m'en servir.
J'essaie d'utiliser CONVERT(varchar,DateField1,131) pour mettre ma date au format voulu dans cette requete :
SELECT A.prom_id,A.prom_id_product,B.name,B.price,B.stock,B.image, A.prom_date_debut convert(varchar,date,103),A.prom_date_fin,A.prom_price FROM prom_prod A, prod B WHERE (DATEDIFF(""ss"",A.prom_date_debut,getdate())>=0 and DATEDIFF(""ss"",A.prom_date_fin,getdate())>0) and A.prom_id_product=B.catalogid
J'ai pas très bien compris le 2eme parametre de convert.
Si quelqu'un peu m'aider
Merci