Rechercher : dans
Par :

Format de date SYSDATE sous PL/SQL

Dernière réponse le 7 déc 2008 à 21:44:40 liluane, le 24 jui 2007 à 13:10:21 
 Signaler ce message aux modérateurs

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!

Configuration: Windows XP
Internet Explorer 6.0
Oracle 8.1.7

Meilleures réponses pour « Format de date SYSDATE sous PL/SQL » dans :
PL/SQL - Introduction au langage PL/SQL VoirIntroduction au langage PL/SQL Le langage PL/SQL est un langage L4G (entendez par ce terme un langage de quatrième génération), fournissant une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le langage SQL en lui...
Fichier DAT VoirFormat DAT Un fichier DAT Un fichier .dat est un fichier de données (.DAT signifie data). En général, il s'agit d'un fichier binaire, créé par un programme et utilisable uniquement par ce programme, ce qui signifie qu'il n'est pas censé être ouvert...

1

comok, le 31 oct 2007 à 09:53:30

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!

Répondre à comok

2

GeorgeToon, le 23 nov 2007 à 11:39:50

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

Répondre à GeorgeToon

3

rboutin, le 10 déc 2007 à 14:49:51

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.

Répondre à rboutin

4

ApacheLRY, le 1 jui 2008 à 16:51:27

Je ne suis pas vraiment d'accord avec vous.

TO_DATE sert à mettre au format date une chaîne de caractère.
Il n'est donc pas correct de faire TO_DATE(SYSDATE,'DD/MM/YYYY') puisque SYSDATE n'est pas une chaîne.

Pour comparer une SYSDATE à une date précédement enregistrée au format 'DD/MM/YYYY' il faudrait plutôt faire :
TO_DATE(TO_CHAR(SYSDATE,'DD/MM/YYYY'),'DD/MM/YYYY')

C'est assez fastidieux et là ou je travaille nous faisons simplement un TRUNC(SYSDATE) ce qui n'est sans doute pas très correct mais qui fonctionne aussi bien.

Répondre à ApacheLRY

5

 totof, le 7 déc 2008 à 21:44:40

Il faut mettre deux Y (YY) dans le format et non YYYY

Répondre à totof
Collection CommentÇaMarche.net