Di Oracle Database, NUMTODSINTERVAL()
fungsi mengonversi angka menjadi INTERVAL DAY TO SECOND
harfiah.
Sintaks
Sintaksnya seperti ini:
NUMTODSINTERVAL(n, 'interval_unit')
n
argumen adalah angka yang akan dikonversi.
Nilai untuk interval_unit
menentukan unit n
dan harus diselesaikan ke salah satu nilai string berikut:
- ‘
DAY
‘ - ‘
HOUR
‘ - ‘
MINUTE
‘ - ‘
SECOND
‘
interval_unit
argumen tidak peka huruf besar/kecil.
Contoh
Berikut ini contoh untuk didemonstrasikan:
SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;
Hasil:
+00 00:00:01.000000
Ini satu lagi yang menggunakan satu menit:
SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;
Hasil:
+00 00:01:00.000000
Detik Pecahan
Secara default, presisi pengembalian adalah 9. Berikut ini adalah salah satu yang menentukan pecahan detik dalam argumen pertama:
SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;
Hasil:
+00 00:00:10.123456789
Inilah yang terjadi jika kita mengubahnya ke unit interval lain:
SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;
Hasil:
+10 02:57:46.666569600
Argumen Null
Melewati null
untuk salah satu argumen menghasilkan null
:
SET NULL 'null';
SELECT
NUMTODSINTERVAL(1, null),
NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;
Hasil:
NUMTODSINTERVAL(1,NULL) NUMTODSINTERVAL(NULL,'SECOND') __________________________ _________________________________ 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 fungsi dengan jumlah argumen yang salah, atau tanpa meneruskan argumen apa pun, menghasilkan kesalahan:
SELECT NUMTODSINTERVAL()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT NUMTODSINTERVAL() 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: