日付データ型の値には、常に日付と時刻のコンポーネントがあります。日時値の時間部分のみを指定した場合、日付部分はデフォルトで当月の初日になります。
ここに場所の1つがあります(7番目の段落) この動作が文書化されているOracleの文書にあります。
文書化されていないTIME
もあります リテラルとTIME
データ型(10407
を介して有効にする必要があります (datetime 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.