有两个关于数据库时间日期格式的问题 希望大家帮忙看看我有一个关于“票”的表单
索引分别是:
“系列号”,“演出号”,“演出日期”,“座位号”,“行号”,“定票日期”,“存档号”
约束条件是:
一个主键 三个个其他表单的关联 并且定票的日期要早于演出的日期create table LesTickets (noSerie number (4), numS number (4),
dateRep date, noPlace number (4), noRang number (4),
dateEmission date, noDossier number (4),
constraint tickets_c1 primary key (noSerie),
constraint tickets_c3 foreign key (numS,dateRep)
references LesRepresentations (numS,dateRep),
constraint tickets_c4 foreign key (noPlace,noRang)
references LesPlaces (noPlace,noRang),
constraint tickets_c5 check (dateEmission <= dateRep),
constraint tickets_c6 foreign key (noDossier)
references LesDossiers (noDossier)
) ; 插入数据的时候用了两种不同的方式第一种:insert into LESTICKETS values ('285', '104', TO_DATE('22/04/2010 20h','DD/MM/YYYY HH24"h"'), '13', '9', '09-FEB-10', '104');
总是会显示错误“insert into LESTICKETS values ('285', '104', TO_DATE('22/04/2010 20h','DD/MM/YYY
Y HH24"h"'), '13', '9', '09-FEB-10', '104') *
ERROR at line 1:
ORA-01843: not a valid month”怎么才能用TO_DATE方法正确转换两种时间格式???第二种:
insert into LESTICKETS values ('252', '104', TO_DATE('21/04/2010 20h','DD/MM/YYYY HH24"h"'), '23', '1', TO_DATE('21/04/2010 10h','DD/MM/YYYY HH24"h"'), '100');当我执行select * from lestickets;查看用第二种方式成功插入的数据时 时间部分为什么显示的是“21-4? -10”?
256 104 21-4? -10 21 2 21-4? -10 100如果我要通过日期dateRep查询 应该写呢 where dateRep等于???
索引分别是:
“系列号”,“演出号”,“演出日期”,“座位号”,“行号”,“定票日期”,“存档号”
约束条件是:
一个主键 三个个其他表单的关联 并且定票的日期要早于演出的日期create table LesTickets (noSerie number (4), numS number (4),
dateRep date, noPlace number (4), noRang number (4),
dateEmission date, noDossier number (4),
constraint tickets_c1 primary key (noSerie),
constraint tickets_c3 foreign key (numS,dateRep)
references LesRepresentations (numS,dateRep),
constraint tickets_c4 foreign key (noPlace,noRang)
references LesPlaces (noPlace,noRang),
constraint tickets_c5 check (dateEmission <= dateRep),
constraint tickets_c6 foreign key (noDossier)
references LesDossiers (noDossier)
) ; 插入数据的时候用了两种不同的方式第一种:insert into LESTICKETS values ('285', '104', TO_DATE('22/04/2010 20h','DD/MM/YYYY HH24"h"'), '13', '9', '09-FEB-10', '104');
总是会显示错误“insert into LESTICKETS values ('285', '104', TO_DATE('22/04/2010 20h','DD/MM/YYY
Y HH24"h"'), '13', '9', '09-FEB-10', '104') *
ERROR at line 1:
ORA-01843: not a valid month”怎么才能用TO_DATE方法正确转换两种时间格式???第二种:
insert into LESTICKETS values ('252', '104', TO_DATE('21/04/2010 20h','DD/MM/YYYY HH24"h"'), '23', '1', TO_DATE('21/04/2010 10h','DD/MM/YYYY HH24"h"'), '100');当我执行select * from lestickets;查看用第二种方式成功插入的数据时 时间部分为什么显示的是“21-4? -10”?
256 104 21-4? -10 21 2 21-4? -10 100如果我要通过日期dateRep查询 应该写呢 where dateRep等于???
VALUES
('285',
'104',
TO_DATE('22/04/2010 20', 'DD/MM/YYYY HH24'),
'13',
'9',
to_date('09-FEB-10', 'dd-mon-yyyy', 'nls_date_language=american'),
'104');
小时后面是不是还应该加上H啊?
但是能不能通过在建表的时候加上constraint来自动转化呢 否则我每次插入的时候都要手动改啊而且如果我要通过日期 查找 应该怎么写?
TO_DATE()
你可以用触发器实现,在插入之前进行转换
oracle QQ群:54775466
欢迎您的到来
大家一起探讨。