Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja NUMTODSINTERVAL() w Oracle

W bazie danych Oracle NUMTODSINTERVAL() funkcja konwertuje liczbę na INTERVAL DAY TO SECOND dosłowne.

Składnia

Składnia wygląda tak:

NUMTODSINTERVAL(n, 'interval_unit')

n argument jest liczbą, na którą należy przekonwertować.

Wartość interval_unit określa jednostkę n i musi zostać rozwiązany do jednej z następujących wartości ciągu:

  • DAY
  • HOUR
  • MINUTE
  • SECOND

interval_unit w argumentach nie jest rozróżniana wielkość liter.

Przykład

Oto przykład do zademonstrowania:

SELECT NUMTODSINTERVAL(1, 'SECOND')
FROM DUAL;

Wynik:

+00 00:00:01.000000

Oto kolejny, który zajmuje minutę:

SELECT NUMTODSINTERVAL(1, 'MINUTE')
FROM DUAL;

Wynik:

+00 00:01:00.000000

Sekundy ułamkowe

Domyślna precyzja zwrotu wynosi 9. Oto taka, która określa ułamki sekund w pierwszym argumencie:

SELECT NUMTODSINTERVAL(10.123456789, 'SECOND')
FROM DUAL;

Wynik:

+00 00:00:10.123456789

Oto, co się stanie, jeśli zmienimy ją na inną jednostkę interwału:

SELECT NUMTODSINTERVAL(10.123456789, 'DAY')
FROM DUAL;

Wynik:

+10 02:57:46.666569600

Argumenty zerowe

Przekazywanie null dla każdego argumentu wynik w null :

SET NULL 'null';
SELECT 
    NUMTODSINTERVAL(1, null),
    NUMTODSINTERVAL(null, 'SECOND')
FROM DUAL;

Wynik:

   NUMTODSINTERVAL(1,NULL)    NUMTODSINTERVAL(NULL,'SECOND') 
__________________________ _________________________________ 
null                       null                             

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Brakujący argument

Wywołanie funkcji z niewłaściwą liczbą argumentów lub bez przekazania żadnych argumentów skutkuje błędem:

SELECT NUMTODSINTERVAL()
FROM DUAL;

Wynik:

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. Entity Framework i wiele schematów

  2. _gc_fusion_compression

  3. Funkcja COS() w Oracle

  4. Czy ktoś mógłby wyjaśnić, co tak naprawdę robi instrukcja MERGE w Oracle?

  5. Jak włączyć tryb dziennika archiwizacji w Oracle Database 19c?