{Oracle} créée une base une table particulièr

Fermé
SoSexy - 2 févr. 2010 à 10:16
 fiu - 2 févr. 2010 à 18:14
Bonjour,

j'aurais voulu savoir comment créér une table avec une date à un format spécial le but est de pouvoir entrer ce genre de donnée :

insert into commande values (100,10,to_date('10/01/2010'),2,to_date('20:50','HH24:MI'),'carte');

ou

insert into commande values (101,11,to_date('11/01/2010'),4,to_date('21:20','HH24:MI'),'cheque');

voilà ce que j'ai fait mais il manque les dates qui ne fonctionnent pas :


Create table Commande (numcom number(3,0) not null ,
numtab number(2,0) ,
datecom ?,
NbPers number(2,0) not null ,
HeurePay ?,
ModePay varchar2 (10),
primary key (numcom) ,
foreign key (numtab) );

voilà si quelqu'un peut m'aider merci ,
A voir également:

2 réponses

Salut,

Oracle ne propose qu'un format pour stocker horodatages : date
si tu stockes une date dans une colonne, elle sera forcément affublée d'une heure (00:00:00) et si tu stockes une heure, elle sera forcément affublée d'une date (0 mais je sais pas comment c'est traduit et j'ai pas d'oracle sous la main pour te le dire).
Et ce sera à toi de ne récupérer de ces dates que ce qui est significatif :
to_char(datecom, 'dd/mm/yyyy') et to_char(heurpay, 'hh24:mi')
1
d'accord donc lorsque je créé ma table je met le type date pour datecom et HeurPay
puis quand j'entred cet ajout de ligne :

insert into commande values (100,10,to_date('10/01/2010'),2,to_date('20:50','HH24:MI'),'­carte');

il comprend que ('10/01/2010') correspondent respectivement au jour ,mois et année et que
(`20:50` , 'HH24:MI') correspond à un horraire en heure de 0 à 24 et en minutes ?

puis lors de mes requètes select il me suffit d'utiliser :
to_char(datecom, 'dd/mm/yyyy') et to_char(heurpay, 'hh24:mi')
pour les récuperer sous le bon format ?

si tel est le cas merci beaucoup pour cette réponse rapide !
0
T'as (presque) tout juste...
la seule chose, c'est que Oracle ne comprend pas que tel truc correspond à une date et tel autre à une heure.
Ce qu'oracle accepte (et non comprend) car présenté correctement, c'est que tu utilises une colonne horodatage pour y stocker une date (avec une heure à 0) et une autre colonne horodatage pour y stocker une heure (avec une date à 0).
1