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

LOCALTIMESTAMP() Fungsi di Oracle

Di Oracle Database, LOCALTIMESTAMP() fungsi mengembalikan tanggal dan waktu saat ini di zona waktu sesi dalam nilai tipe data TIMESTAMP .

Ini mirip dengan CURRENT_TIMESTAMP , kecuali CURRENT_TIMESTAMP mengembalikan TIMESTAMP WITH TIME ZONE nilai.

Sintaks

Sintaksnya seperti ini:

LOCALTIMESTAMP [ (timestamp_precision) ]

Di mana timestamp_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 LOCALTIMESTAMP
FROM DUAL;

Hasil:

07/AUG/21 08:49:50.026443000 AM

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(LOCALTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;

Hasil:

2021-08-07 08:50:20

Presisi

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

SELECT LOCALTIMESTAMP(9)
FROM DUAL;

Hasil:

07/AUG/21 08:50:47.203717000 AM

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

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

SELECT LOCALTIMESTAMP(10)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOCALTIMESTAMP(10)
FROM DUAL
Error at Command Line : 1 Column : 23
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 LOCALTIMESTAMP tanpa melewati precision argumen, Anda harus menghilangkan tanda kurung.

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

SELECT LOCALTIMESTAMP()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOCALTIMESTAMP()
FROM DUAL
Error at Command Line : 1 Column : 23
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 LOCALTIMESTAMP(null)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LOCALTIMESTAMP(null)
FROM DUAL
Error at Command Line : 1 Column : 23
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. Apakah ada fungsi di Oracle yang mirip dengan group_concat di mysql?

  2. Cara Membuat Fungsi PL/SQL Di Database Oracle

  3. Mengapa ddl statis tidak diizinkan di PL/SQL?

  4. Memahami aliasing Oracle - mengapa alias tidak dikenali dalam kueri kecuali dibungkus dengan kueri kedua?

  5. SYS_GUID() Fungsi di Oracle