Comment convertir un datetime ?

Comment convertir un datetime ? - SQL/NoSQL - Programmation

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 :
 

Citation :

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

Reply

Marsh Posté le 22-09-2008 à 10:30:54   

Reply

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


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

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.
 
 
 

Reply

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  
 
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

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


Message édité par MagicBuzz le 22-09-2008 à 17:38:13
Reply

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."
 

Reply

Marsh Posté le 25-09-2008 à 09:40:32    

Tu peux redonner ta requête final et comment tu l'appelles
dans ton code ?


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

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


Message édité par lonyc le 25-09-2008 à 10:07:12
Reply

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 :spamafote:


Message édité par MagicBuzz le 25-09-2008 à 17:46:47
Reply

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)

Reply

Marsh Posté le 26-09-2008 à 09:30:27   

Reply

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 ...


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

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

Reply

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 :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed