{Oracle} Date

Résolu/Fermé
sangokudu92 Messages postés 161 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 4 février 2022 - 13 déc. 2009 à 13:32
sangokudu92 Messages postés 161 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 4 février 2022 - 16 déc. 2009 à 13:08
Bonjour,
J'ai utiliser la syntaxe suivante pour insérer une heure, mais le résultat me donne une date:
Insert into Entrainement
Values (10,'Lundi',to_date('20:00','HH24:MI'),to_date('22:00','HH24:MI'),'1','4');

Voila le résultat
10 --- Lundi --- 01/12/09 --- 01/12/09 --- 1 --- 4

4 réponses

Oui, mais si tu affiches cette date avec un masque d'heure, tu obtiendras bien l'heure que tu avais insérés.

select to_char(heure_debut, 'hh24:mi') HDeb, tochar(heure_fin, 'hh24:mi') HFin from entrainement where cle=10; t'affiche bien 20:00 et 22:00

mieux!
select *
from entrainement
where heure_debut = to_date('20:00','hh24:mi')
and heure_fin = to_date('22:00', 'hh24­:mi');
t'affichera au moins la ligne avec la cle 10
0
sangokudu92 Messages postés 161 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 4 février 2022 7
15 déc. 2009 à 10:17
Est-il possible justement d'insérer une valeur directement sous le format horaire pour pouvoir faire un
select *
from entrainement; ?

Sinon je ne vois pas l'utilité d'insérer une valeur en mettant "to_date" si au final je doit le remettre au moment de la requête SQL.
0
Il se trouve que M. Oracle, quand il a écrit son logiciel, n'a pas prévu une notation plus ou moins exotique pour saisir "directement" des horodatages. S'il l'avait fait, il aurait dû décider du format à adopter : avec ou sans heure ? sur 12 ou 24h ? date américaine ? européenne ? japonaise ?
Il a choisi la solution intelligente : c'est l'utilisateur qui, dans sa session, choisit le format d'affichage pour ses dates ; en lui laissant la possibilité d'utiliser le format qu'il veut au moment où il le veut.
L'intérêt final est de stocker des horodatages et non des chaines représentant des horodatages.

En attendant de saisir tout l'intérêt de la chose, tu peux prendre l'habitude de régler ta session pour travailler avec le format que tu utilises le plus souvent. Si plus de 50% de tes échanges de dates avec la base se font sous la forme 'HH24:MI', il serait judicieux de régler ta session (à chaque démarrage de session :D) pour utiliser ce format. La commande qui va bien est
alter session set nls_date_format = 'ton format le plus utilisé';
donc, dans ton cas, alter session set nls_date_format = 'hh24:mi';
À partir de ce moment là, c'est ce format qui est utilisé pour convertir les horodatages en affichage ou en saisie.

Je te souhaite une bonne journée
0
sangokudu92 Messages postés 161 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 4 février 2022 7
16 déc. 2009 à 13:08
Mercii
0