Di Oracle Database, NEW_TIME()
fungsi mengonversi tanggal dari zona waktu tertentu ke zona waktu lain yang ditentukan, dan mengembalikan hasilnya.
Sintaks
Sintaksnya seperti ini:
NEW_TIME(date, timezone1, timezone2)
Jadi, fungsi mengembalikan tanggal dan waktu dalam zona waktu timezone2
kapan tanggal dan waktu di zona waktu timezone1
adalah date
.
Perhatikan bahwa sebelum menggunakan fungsi ini, Anda harus menyetel NLS_DATE_FORMAT
parameter untuk menampilkan waktu 24 jam.
Argumen timezone1
dan timezone2
dapat berupa salah satu dari string teks ini:
AST atau ADT | Atlantic Standard atau Waktu Musim Panas |
BST atau BDT | Bering Standar atau Waktu Siang Hari |
CST atau CDT | Standar Tengah atau Waktu Musim Panas |
EST atau EDT | Standar Timur atau Waktu Musim Panas |
GMT | Waktu Rata-Rata Greenwich |
HST atau HDT | Waktu Standar atau Waktu Siang Hari Alaska-Hawaii |
MST atau MDT | Standar Gunung atau Waktu Musim Panas |
NST | Waktu Standar Newfoundland |
PST atau PDT | Standar Pasifik atau Waktu Musim Panas |
YST atau YDT | Standar Yukon atau Waktu Musim Panas |
Contoh
Ini contohnya:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME(
TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'),
'AST',
'PST'
)
FROM DUAL;
Hasil:
2030-03-01 08:30:45
Seperti yang disebutkan, saat menggunakan fungsi NLS_DATE_FORMAT
ini parameter perlu diatur untuk menampilkan waktu 24 jam, jadi itulah yang dilakukan baris pertama dalam contoh di atas. Anda dapat menghilangkan baris ini jika NLS_DATE_FORMAT
sesi Anda parameter sudah menggunakan waktu 24 jam. Lihat Cara Mengatur Format Tanggal Sesi Anda untuk contoh lebih lanjut tentang pengaturan format tanggal untuk sesi saat ini.
Argumen Null
Jika ada argumen null
, hasilnya null
:
SET NULL 'null';
SELECT
NEW_TIME(null, 'AST', 'ADT') AS "1",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
FROM DUAL;
Hasil:
1 2 3 _______ _______ _______ null null null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null
terjadi sebagai akibat dari SQL SELECT
penyataan.
Namun, Anda dapat menggunakan SET NULL
untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null
harus dikembalikan.
Argumen Tidak Ada
Memanggil NEW_TIME()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:
SELECT NEW_TIME()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT NEW_TIME() 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: