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

Konversi tanggal ke string Oracle

Data di COL1 ada di dd-mon-yy

Tidak. DATE kolom tidak memiliki format apapun. Itu hanya dikonversi (secara implisit) ke representasi itu oleh klien SQL Anda saat Anda menampilkannya.

Jika COL1 benar-benar DATE kolom menggunakan to_date() di atasnya tidak berguna karena to_date() mengonversi string menjadi DATE.

Anda hanya perlu to_char(), tidak ada yang lain:

SELECT TO_CHAR(col1, 'mm/dd/yyyy') 
FROM TABLE1

Apa yang terjadi dalam kasus Anda adalah memanggil to_date() mengonversi DATE menjadi nilai karakter (menerapkan format NLS default) dan kemudian mengubahnya kembali menjadi DATE. Karena konversi implisit ganda ini, beberapa informasi hilang dalam perjalanan.

Sunting

Jadi Anda melakukan kesalahan besar dengan menyimpan DATE di kolom karakter. Dan itulah mengapa Anda mendapatkan masalah sekarang.

Solusi terbaik (dan sejujurnya:satu-satunya yang masuk akal) adalah mengonversi kolom itu menjadi DATE . Kemudian Anda dapat mengonversi nilai ke representasi apa pun yang Anda inginkan tanpa mengkhawatirkan konversi tipe data implisit.

Tapi kemungkinan besar jawabannya adalah "Saya mewarisi model ini, saya harus mengatasinya " (selalu begitu, ternyata tidak ada yang bertanggung jawab untuk memilih tipe data yang salah), maka Anda perlu menggunakan RR bukannya YY :

SELECT TO_CHAR(TO_DATE(COL1,'dd-mm-rr'), 'mm/dd/yyyy')
FROM TABLE1

harus melakukan trik. Perhatikan bahwa saya juga mengubah mon ke mm sebagai contoh Anda adalah 27-11-89 yang memiliki nomor bulan, bukan "kata" (seperti NOV )

Untuk detail lebih lanjut lihat manual:http://docs.Oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#SQLRF00215



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mendeklarasikan dan menampilkan variabel di Oracle

  2. Bisakah terjadi deadlock dengan metode akses yang sama?

  3. Tipe data Oracle JDBC dan Oracle CHAR

  4. Bagaimana cara membuat objek Oracle.sql.ARRAY?

  5. Menghubungkan ke database Oracle menggunakan SQLAlchemy