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

SQL Query menggunakan dua tanggal

'10-MAY-20' bukan tanggal, itu adalah string. Tanggal tidak memiliki format apa pun, berdasarkan setelan NLS khusus lokal Anda, tanggal ditampilkan dalam format yang dapat dibaca manusia menggunakan TO_CHAR dan topeng format yang tepat.

Juga, Anda harus menghindari penggunaan dua digit YY representasi untuk tahun, itulah alasannya Y2K bug dimulai. Selalu gunakan YYYY format.

Untuk mengubah string menjadi tanggal:

Gunakan TO_DATE dan topeng format yang sesuai:

where  date_col > TO_DATE('10-MAY-2020', 'DD-MON-YYYY')  
and    date_col < TO_DATE('13-MAY-2020', 'DD-MON-YYYY')

Atau, gunakan ANSI date literal yang menggunakan format tetap 'YYYY-MM-DD' :

where  date_col > DATE '2020-05-10' and date < DATE '2020-05-13'

Hal lain, DATE adalah kata khusus Oracle, Anda dapat melihat dokumentasi . Mungkin, Anda menggunakan pengidentifikasi yang dikutip "date" yaitu menggunakan tanda kutip ganda di sekitar kata yang dicadangkan.

Itu mungkin karena pengaturan NLS Anda dari Pengembang SQL diatur ke 'DD-MON-YY' , jadi ketika Anda melewatkan tanggal dalam format itu, ia melakukan konversi implisit ke tanggal. Namun, jika Anda mengubah formatnya, itu tidak akan berfungsi:

alter session set NLS_DATE_FORMAT = 'YYYY-MM-DD';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengganti bagian dari paket Oracle

  2. Bagaimana Anda mengerjakan paket Oracle dalam lingkungan kolaboratif yang dikontrol versi?

  3. Perbedaan Antara Klien Instan Oracle dan Klien Oracle

  4. Prosedur tersimpan Oracle dengan parameter untuk klausa IN

  5. Tabel bermutasi pada pemicu Oracle SQL