日期数据类型的值始终具有日期和时间组件。如果您仅指定日期时间值的时间部分,则日期部分默认为当前月份的第一天。
另外也无证TIME文字和TIME数据类型(需要通过10407(日期时间TIME数据类型创建)事件启用),如果你需要使用并存储只是时间,没有日期部分。
这里是使用time文字和time数据类型的小示范。但它又是一个没有文档和不受支持的功能。
SQL> select time '11:32:00' as res
2 from dual;
res
------------------------
11.32.00.000000000 AM
您可以使用时间字面而不启用10407事件,但为了能够定义time数据类型的列的10407事件需要启用:
SQL> create table time_table(time_col time);
create table time_table(time_col time)
*
ERROR at line 1:
ORA-00902: invalid datatype
-- enable 10407 event
SQL> alter session set events '10407 trace name context forever, level 1';
Session altered.
现在我们可以创建列为time的表格数据类型:
SQL> create table time_table(time_col time);
Table created.
SQL> insert into time_table(time_col)
2 values(time '11:34:00');
1 row created.
SQL> select * from time_table;
TIME_COL
---------------
11.34.00 AM
SQL> alter session set events '10407 trace name context off';
Session altered.