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

Fungsi NUMTODSINTERVAL() di Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan login Sqlplus saat menggunakan variabel bash:SP2-0306:Opsi tidak valid

  2. PLS-00201 pengenal 'PACKAGENAME.PROCEDURENAME' harus dideklarasikan

  3. ORA-02287:nomor urut tidak diperbolehkan di sini

  4. Oracle:OALL8 dalam keadaan tidak konsisten

  5. Mengapa Oracle SQL tidak mengizinkan kita menggunakan alias kolom dalam klausa GROUP BY?