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

CURRENT_TIMESTAMP() Fungsi di Oracle

Di Oracle Database, CURRENT_TIMESTAMP() fungsi mengembalikan tanggal dan waktu saat ini dalam zona waktu sesi, dalam nilai tipe data TIMESTAMP WITH TIME ZONE .

Ini mirip dengan LOCALTIMESTAMP , kecuali LOCALTIMESTAMP mengembalikan TIMESTAMP nilai.

Sintaks

Sintaksnya seperti ini:

CURRENT_TIMESTAMP [ (precision) ]

Di mana precision opsional argumen menentukan presisi pecahan detik dari nilai waktu yang dikembalikan.

Saat memanggil fungsi tanpa argumen, tanda kurung harus dihilangkan.

Contoh

Berikut ini contoh pemanggilan fungsi tanpa menentukan presisi:

SELECT CURRENT_TIMESTAMP
FROM DUAL;

Hasil:

06/AUG/21 08:32:31.165866000 AM AUSTRALIA/BRISBANE

Contoh ini menampilkan tanggal dalam format berdasarkan nilai NLS_DATE_FORMAT sistem saya parameter (yang saat ini DD/MON/RR ). Parameter ini mendapatkan nilainya dari NLS_TERRITORY parameter (yang milik saya adalah AUSTRALIA ).

Kami memiliki opsi untuk mengubah parameter ini (misalnya, lihat Cara Mengubah Format Tanggal di Sesi Oracle Anda).

Atau, kita dapat menggunakan fungsi seperti TO_CHAR() untuk mengembalikan hasilnya dalam format yang berbeda.

Contoh:

SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;

Hasil:

2021-08-06 08:44:39

Presisi

Berikut adalah contoh yang menentukan presisi. ini menentukan presisi pecahan detik dari nilai waktu yang dikembalikan.

SELECT CURRENT_TIMESTAMP(9)
FROM DUAL;

Hasil:

06/AUG/21 09:02:37.868264000 AM AUSTRALIA/BRISBANE

Perhatikan bahwa argumen presisi harus berupa angka antara 0 dan 9.

Inilah yang terjadi jika kita memberikan nilai di luar rentang tersebut:

SELECT CURRENT_TIMESTAMP(10)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT CURRENT_TIMESTAMP(10)
FROM DUAL
Error at Command Line : 1 Column : 26
Error report -
SQL Error: ORA-30088: datetime/interval precision is out of range
30088. 00000 -  "datetime/interval precision is out of range"
*Cause:    The specified datetime/interval precision was not between 0 and 9.
*Action:   Use a value between 0 and 9 for datetime/interval precision.

Menghilangkan Tanda kurung tanpa Menentukan Presisi

Seperti yang disebutkan, saat memanggil CURRENT_TIMESTAMP tanpa melewati precision argumen, Anda harus menghilangkan tanda kurung.

Inilah yang terjadi jika kita menyertakan tanda kurung tanpa menentukan presisinya:

SELECT CURRENT_TIMESTAMP()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT CURRENT_TIMESTAMP()
FROM DUAL
Error at Command Line : 1 Column : 26
Error report -
SQL Error: ORA-30088: datetime/interval precision is out of range
30088. 00000 -  "datetime/interval precision is out of range"
*Cause:    The specified datetime/interval precision was not between 0 and 9.
*Action:   Use a value between 0 and 9 for datetime/interval precision.

Kami mendapatkan kesalahan yang sama seperti pada contoh sebelumnya. Oracle Database mencari argumen presisi antara 0 dan 9, tetapi tidak ada yang lolos.

Argumen Null

Kesalahan yang sama terjadi ketika melewati null :

SELECT CURRENT_TIMESTAMP(null)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT CURRENT_TIMESTAMP(null)
FROM DUAL
Error at Command Line : 1 Column : 26
Error report -
SQL Error: ORA-30088: datetime/interval precision is out of range
30088. 00000 -  "datetime/interval precision is out of range"
*Cause:    The specified datetime/interval precision was not between 0 and 9.
*Action:   Use a value between 0 and 9 for datetime/interval precision.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa Oracle menampilkan ??? untuk karakter khusus seperti ö

  2. LEAST() Fungsi di Oracle

  3. Opsi Pengiriman saat Mengirimkan Permintaan Bersamaan Di R12.1.3

  4. Menjatuhkan pengguna yang terhubung dari skema database Oracle 10g

  5. Penyetelan Kinerja PL/SQL untuk Kueri Wildcard LIKE '%...%'