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

Cara Memasukkan Stempel Waktu di Oracle dalam Format Tertentu

Anda tidak memasukkan stempel waktu dalam format tertentu. Stempel waktu (dan tanggal) disimpan dalam database menggunakan representasi internal, yaitu antara 7 dan 11 byte tergantung pada jenis dan presisi. Ada lebih banyak tentang itu dalam pertanyaan ini , antara lain.

Klien atau aplikasi Anda memutuskan cara menampilkan nilai dalam bentuk string yang dapat dibaca manusia.

Ketika Anda melakukannya:

to_timestamp(localtimestamp,'YYYY/MM/DD')

anda secara implisit mengonversi localtimestamp ke string, menggunakan setelan NLS sesi Anda, lalu mengonversinya kembali menjadi stempel waktu. Itu mungkin secara tidak sengaja mengubah nilai - kehilangan presisi - tetapi tidak akan mengubah cara nilai disimpan secara internal. Dalam kasus Anda, ketidakcocokan antara pengaturan NLS dan format yang Anda berikan menyebabkan kesalahan ORA-01830.

Jadi sisipan pertama Anda benar (dengan asumsi Anda benar-benar menginginkan waktu sesi, bukan waktu server). Jika Anda ingin melihat nilai yang disimpan dalam format tertentu kemudian ubah pengaturan NLS sesi klien Anda, atau sebaiknya format secara eksplisit saat Anda menanyakannya, mis.:

select to_char(time, 'YYYY-MM-DD HH24:MI:SS.FF3') from activity_log


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pekerjaan Oracle Enterprise Manager adalah Hung

  2. Cara Mengekspor Hasil Permintaan Oracle ke File JSON saat menggunakan SQLcl

  3. Bagaimana Anda mendapatkan tanggal maksimum yang mungkin di Oracle?

  4. Klien instan Oracle dengan permata Ruby-oci8 tidak dapat terhubung dengan DB di Rails c

  5. Cara terbaik membagi string csv di Oracle 9i