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

Fungsi TO_DATE di ORACLE

Tanggal tidak memiliki format - tanggal diwakili oleh 7- atau 8-byte .

SELECT DUMP( SYSDATE ) FROM DUAL;

Mungkin keluaran:

Typ=13 Len=8: 220,7,11,26,16,41,9,0

Format ini sangat berguna bagi komputer untuk membandingkan tanggal tetapi tidak begitu berguna bagi orang-orang; jadi, ketika klien SQL (SQL/plus, SQL Developers, TOAD, dll) menampilkan tanggal, ia tidak menampilkan byte tetapi menampilkannya sebagai string.

Ini dilakukan dengan membuat panggilan implisit ke TO_CHAR() (atau metode internal lainnya untuk merangkai tanggal) dan menggunakan format mask default untuk melakukan konversi ini.

SQL/Plus dan Pengembang SQL akan menggunakan parameter sesi pengguna NLS_DATE_FORMAT untuk melakukan konversi ini - lihat jawaban ini mengenai hal ini.

Jadi kueri kedua Anda secara implisit sedang dikonversi untuk melakukan sesuatu yang mendekati ini (tetapi, hampir pasti, lebih efisien):

SELECT TO_CHAR(
         TO_DATE('01-01-2015','DD-MM-YYYY'),
         ( SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT' )
       )
FROM   DUAL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parsing XML dengan ruang nama yang tidak dikenal di Oracle SQL

  2. ORA-31011:Penguraian XML gagal - karakter tidak valid (Oracle sql)

  3. Mengapa banyak tabel ORACLE default 12c?

  4. Kembalikan tabel dalam fungsi PL/SQL

  5. Apakah Oracle mendukung pencarian teks lengkap?