2013-12-03 70 views
1

我想在Oracle SQL * Plus中创建一个表,它不会采用数据类型time,但在采用数据类型date时没有问题。SQL无效的数据类型时间

drop table order; 
create table orders (
order_id char(4) not null, 
order_date date, 
order_time time, -- invalid datatype 
cash_time char(3), 
primary key(order_id) 
); 

这很奇怪......这是为什么?我该如何解决它,或者有没有其他方法可以使用time

+0

看这里http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm – BWS

+0

Oracle中没有'TIME'类型。 [这是一个相当不错的答案](http://stackoverflow.com/a/13187624/1454048)从一个类似的问题。 – admdrew

回答

2

在Oracle中没有数据类型作为TIME。您可以使用TIMESTAMP or DATE。所以我认为你需要改变TIMETIMESTAMPDATE,事情会为你工作。

我想你对这个TIME数据类型感到困惑。

+0

呃,不是真的。 'TIMESTAMP'实际上只是'DATE' +小数秒。除非用户需要小数秒,否则只需使用'DATE'的时间部分。 – admdrew

+0

@admdrew: - 我同意,但我只是想告诉OP,TIME不是他正在查找的数据类型。 Definetely有他可以寻找的选项 –

+0

而downvote的原因是? –

0

我很快看着orcle数据类型documentation并没有看到时间数据类型,我认为这是问题所在。 为什么不使用日期数据类型作为单个字段,而不是为日期和时间创建两个字段。