Di Oracle Database, SYS_EXTRACT_UTC()
fungsi mengekstrak UTC (Waktu Universal Terkoordinasi) dari nilai waktu dengan offset zona waktu atau nama wilayah zona waktu.
Sintaks
Sintaksnya seperti ini:
SYS_EXTRACT_UTC(datetime_with_timezone)
Contoh
Berikut ini contoh untuk didemonstrasikan:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Hasil:
25/AUG/35 06:30:45.123456789 AM
Format yang dihasilkan bergantung pada nilai NLS_TIMESTAMP_FORMAT
Anda parameter. Nilai default parameter ini berasal dari NLS_TERRITORY
parameter. Mengubah salah satu dari ini dapat mengubah format SYS_EXTRACT_UTC()
fungsi untuk sesi Anda.
Contoh:
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD-MON-RRRR HH24:MI:SSXFF';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Hasil:
25-AUG-2035 06:30:45.123456789
Dan inilah tampilannya saat saya menyetel NLS_TERRITORY
parameter ke AMERICA
:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Hasil:
25-AUG-35 06.30.45.123456789 AM
Mengubah parameter ini secara implisit menyetel NLS_TIMESTAMP_FORMAT
ke format untuk AMERICA
.
Lihat Cara Mengubah Format Tanggal Sesi Anda untuk informasi dan contoh lebih lanjut.
Nama Wilayah Zona Waktu
Sebagai alternatif, Anda dapat menggunakan nama wilayah zona waktu alih-alih offset zona waktu.
Contoh:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 Asia/Bangkok')
FROM DUAL;
Hasil:
25-AUG-35 03.30.45.123456789 AM
Zona Waktu Default
Jika zona waktu tidak ditentukan, maka datetime dikaitkan dengan zona waktu sesi.
Contoh:
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789')
FROM DUAL;
Hasil:
25-AUG-35 12.30.45.123456789 AM
Anda dapat memeriksa zona waktu sesi saat ini dengan SESSIONTIMEZONE
fungsi:
SELECT SESSIONTIMEZONE
FROM DUAL;
Hasil:
Australia/Brisbane
Lihat 4 Cara Mengubah Zona Waktu di Oracle untuk contoh perubahan ini.
Argumen Null
Melewati null
menghasilkan kesalahan:
SELECT SYS_EXTRACT_UTC(null)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT SYS_EXTRACT_UTC(null) FROM DUAL Error at Command Line : 1 Column : 24 Error report - SQL Error: ORA-30175: invalid type given for an argument 30175. 00000 - "invalid type given for an argument" *Cause: There is an argument with an invalid type in the argument list. *Action: Use the correct type wrapper for the argument.
Argumen Tidak Ada
Memanggil fungsi dengan jumlah argumen yang salah, atau tanpa meneruskan argumen apa pun, menghasilkan kesalahan:
SELECT SYS_EXTRACT_UTC()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT SYS_EXTRACT_UTC() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: