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

mengubah yyyy-mm-dd menjadi bb/hh/tttt

Tanggal tidak memiliki format - tanggal diwakili secara internal oleh 7- atau 8- byte . Hanya ketika program klien melewati tanggal yang program klien (berpotensi) memberikannya format.

Format string default untuk tanggal di SQL/Plus atau SQL Developer disetel oleh NLS_DATE_FORMAT parameter sesi. Klien lain biasanya memiliki parameter yang dapat Anda atur untuk format tanggal default (jika mereka juga tidak menggunakan NLS pengaturan). Namun, berhati-hatilah bahwa NLS_DATE_FORMAT adalah parameter sesi sehingga menjadi milik sesi pengguna dan beberapa pengguna masing-masing dapat memiliki nilai yang berbeda untuk parameter yang sesuai dengan cara mereka menyetelnya.

Jika Anda ingin memberikan tanggal dengan format tertentu, Anda harus mengubahnya menjadi string:

SELECT TO_CHAR( DATE '2016-05-01', 'MM/DD/YYYY HH24:MI:SS' )
FROM   DUAL;

Mengapa kueri Anda tidak berfungsi :

TO_DATE( value, frmt ) mengharapkan nilai string dan topeng format. TO_DATE('2016-05-01 00:00:00','YYYY-MM-DD HH24:MI:SS') bagian dalam benar-benar valid dan akan mengembalikan DATE '2016-05-01' .

Namun, bagian luar TO_DATE() kemudian diteruskan DATE ketik yang baru saja Anda buat dan format string (bukan dua string yang diharapkan). Oracle secara implisit akan memanggil TO_CHAR() pada tanggal dan gunakan NLS_DATE_FORMAT parameter sesi sebagai topeng format. Ini menghasilkan string dari tanggal dan, dengan kesalahan, nilai NLS_DATE_FORMAT bukan MM/DD/YYYY HH24:MI:SS jadi ketika bagian luar TO_DATE() mencoba mengurai string yang dibuat secara implisit itu gagal karena angka pertama yang dibacanya tidak valid selama sebulan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memecah sejumlah besar baris menjadi kueri yang lebih kecil? Paralelisme

  2. skrip shell untuk menemukan nama file &jumlah baris setiap file, sekarang masukkan catatan ini ke tabel Oracle

  3. Bagaimana saya bisa membuat daftar semua tabel yang ada di Tautan Database (Oracle)?

  4. Bagaimana cara mengubah nilai yang dipisahkan koma menjadi baris di Oracle?

  5. Mencari bidang varchar untuk nilai numerik dari rentang tertentu