bonjour je veux inseré une heure dans un tableau dans une colonne date
mais je ne vois pas comment l introduire.
INSERT INTO table1(ville, heure) values('bordeaux', 06:30)
erreur: le mois n est pas valide.
help me!!
bonjour je veux inseré une heure dans un tableau dans une colonne date
mais je ne vois pas comment l introduire.
INSERT INTO table1(ville, heure) values('bordeaux', 06:30)
erreur: le mois n est pas valide.
help me!!
une date est forcément au format date + heure. Tu as donc 2 possibilités :
1°) un VARCHAR2 mais tu perds la possibilité d'utiliser les fonctions relatives aux date
2°) tu mets une date bidon genre 01/01/1900![]()
Ou bien tu peux laisser la colonne "heure" de type date, et à chaque insertion la date sera la date du jour si tu ne la renseignes pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 create table table1 (ville varchar(10),heure date); insert into table1(ville,heure) values('bordeaux',to_date('06:30','HH24:MI')); select ville,to_char(heure,'MM/DD/YYYY HH24:MI:SS') from table1; VILLE TO_CHAR(HEURE,'MM/DD/YYYYHH24:MI:SS') ---------- ------------------------------------- bordeaux 12/01/2007 06:30:00
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !
Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
le but etant bien de comparée les heures mais il faut savoir que les heures sont des heures d'ouverture et fermeture de gare donc de tout les jours.
merci quand meme scheu
c'est une question qui revient assez souvent, en effet, le type TIME n'est hélas pas supporté dans les tables oracle.
Dans les possibilité, utiliser 1900-01-01 ou -4712-01-01 ou 2000-01-01 me parait tout à fait en ordre, mais j'ajouterais une contrainte pour être sûr de n'avoir aucune date significative
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SQL> select time '12:00:00' from dual; TIME'12:00:00' ---------------------------------------------------------- 12.00.00.000000000 PM SQL> create table t as select time '12:00:00' t from dual; create table t as select time '12:00:00' t from dual * ERROR at line 1: ORA-00902: invalid datatype
Dans les alternatives on peut employer des number secondes depuis minuit, voire des intervales DAY2SECOND depuis minuit. Les varchar2, c'est trop moche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SQL> create table t(x date constraint x_is_a_time check (x>=date '2000-01-01' and x<date '2000-01-02')); Table created. SQL> insert into t values (to_date('20000101-120000', 'YYYYMMDD-HH24MISS')); 1 row created. SQL> update t set x=x+interval '12' hour; update t set x=x+interval '12' hour * ERROR at line 1: ORA-02290: check constraint (SCOTT.X_IS_A_TIME) violated
Attention si tu as des gares qui ferment à 1h du mat'![]()
Partager