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

SYS_EXTRACT_UTC() Fungsi di Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Statistik Tabel GTT dan SYS.WRI$_OPTSTAT_TAB_HISTORY

  2. Cara menyisipkan string yang berisi &

  3. menghitung jam berdasarkan jam kerja di Oracle SQL

  4. Bagaimana menghindari kesalahan mutasi tabel

  5. Bagaimana cara Membungkus Kode SQL PL di Oracle?