VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Format de date SYSDATE sous PL/SQL

liluane 1Messages postés 24 juillet 2007Date d'inscription - Dernière réponse le 29 avril 2012 à 17:55
Bonjour,
J'ai un problème de format de date sous PL/sql :
Je fais les requêtes suivantes dans mon interface de saisie de code sql (TOAD 8) J'obtiens le bon format que je veux. ( ie DD/MM/YYYY )
select TO_CHAR(sysdate,'DD/MM/YYYY') from dual ------->24/07/2007
select TO_CHAR(sysdate,'DD-MM-YYYY') from dual; ----------> 24-07-2007
select add_months (sysdate,0) from dual ------->24/07/2007
select trunc(sysdate) from dual ------->24/07/2007
select trunc(add_months (sysdate,0)) from dual ------->24/07/2007
select trunc(sysdate,'DD') from dual ------->24/07/2007
Par contre ici j'ai cette date très zarbi et je ne sais pas pourquoi l'année est 0007 et pas 2007.
select TO_DATE(sysdate,'DD-MM-YYYY') from dual; ------->24/07/0007
select TO_DATE(sysdate,'DD/MM/YYYY') from dual; ------->24/07/0007
Donc j'ai essayé plusieurs solutions.
J'ai déjà regardé les forums proposés sur comment récupérer que la date dans sysdate (sans l'heure) c'est toujours pareil :'( j'obtient toujours le même format!
SOMEONE HELP PLEASE! Thanks!
Lire la suite 

Format de date SYSDATE sous PL/SQL »

8 réponses
Réponse
+5
moins plus
Salut,
Je suis heureux de voir que quelqu'un d'autre que moi se trouve devant le même problème.
Moi aussi j'utilise TOAD, et je crée une vue sql dans laquelle il y a une comparaison entre SYSDATE et des dates au format 'DD/MM/YYYY'.
Après avoir eu le même problème: select TO_DATE(sysdate,'DD/MM/YYYY') from dual; ------->30/10/0007 , la solution que j'ai trouvée a été d'appeler SYSDATE sans le deuxième paramètre: select TO_DATE(sysdate).
Et depuis, ô miracle, ça fonctionne!
Ajouter un commentaire
Réponse
+4
moins plus
Bonjour à tous,

La véritable syntaxe a utiliser est select to_date(sysdate, 'dd-mm-rrrr') from dual.

L'utilisation de « rrrr» au lieu de « yyyy » s'assure de bien gérer le siècle ce qui n'était pas nécessaire avant l'an 2000.

Au plaisir.
Ner0lph- 15 nov. 2010 à 17:20
Pour faire des comparaisons avec des dates, il y a aussi le between.
:) - 13 mai 2011 à 16:22
:)
mc4us - 29 avril 2012 à 17:55
Oui tout à fait , il faut une chaine de caractere pour formater sysdate
Ajouter un commentaire
Réponse
+2
moins plus
Il faut mettre deux Y (YY) dans le format et non YYYY
Ajouter un commentaire
Réponse
+1
moins plus
Salut,
Sinon si vous voulez absolument formater d'une certaine façon votre date par exemple au lieu d'avoir 23/11/2007 vous préférez 23-11-2007 il faut utiliser ça : SELECT TO_DATE(SYSDATE, 'DD-MM-YY') FROM dual
Et si vous n'avez pas forcément besoin d'avoir une date en sortie mais plutôt une chaine de caractères il faut utiliser ça :
SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY') FROM dual
Ajouter un commentaire
Ce document intitulé « Format de date SYSDATE sous PL/SQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?