Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle TO_DATE dengan hanya input waktu akan menambahkan komponen tanggal berdasarkan logika apa?

Nilai tipe data tanggal selalu memiliki komponen tanggal dan waktu. jika Anda hanya menentukan porsi waktu dari nilai datetime seperti yang Anda lakukan, porsi tanggal default ke hari pertama bulan ini.

Ini salah satu tempatnya (paragraf ke-7) dalam dokumentasi Oracle tempat perilaku ini didokumentasikan.

Ada juga TIME . yang tidak berdokumen literal dan TIME tipe data (harus diaktifkan melalui 10407 (datetime TIME datatype creation) event) jika Anda perlu menggunakan dan menyimpan hanya waktu, tanpa bagian tanggal.

Berikut ini adalah demonstrasi kecil menggunakan time literal dan time tipe data. Tapi sekali lagi ini adalah fitur yang tidak terdokumentasi dan tidak didukung.

SQL> select time '11:32:00' as res
  2    from dual;

res 
------------------------  
11.32.00.000000000 AM      

Anda dapat menggunakan literal waktu tanpa mengaktifkan 10407 acara, tetapi untuk dapat menentukan kolom time ketik data 10407 acara harus diaktifkan:

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.

Sekarang kita bisa membuat tabel dengan kolom time tipe data:

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle melihat kinerja dengan rownum

  2. Masukkan CLOB ke dalam database Oracle

  3. GROUP BY dengan MAX(DATE)

  4. Tanggal FRM-50026 harus dimasukkan dalam format seperti DD-MON-YYYY

  5. Jika pernyataan dalam klausa Where