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

interwał formatu z to_char

możesz rzutować wynik, jeśli chcesz mieć mniejszą precyzję:

SQL> SELECT TO_DSINTERVAL('10 10:00:00') t_interval FROM dual;

T_INTERVAL
-----------------------------------------------------------
+000000010 10:00:00.000000000

SQL> SELECT CAST(TO_DSINTERVAL('10 10:00:00')
  2                 AS INTERVAL DAY(2) TO SECOND(3)) t_interval
  3    FROM dual;

T_INTERVAL
-----------------------------------------------------------
+10 10:00:00.000

Edytuj następujący komentarz OP:

Z dokumentacji Oracle (11gr1):

Interwałowe typy danych nie mają modeli formatu. Dlatego, aby dostosować ich prezentację, musisz połączyć funkcje znaków, takie jak EXTRACT, i połączyć komponenty.

Wygląda na to, że będziesz musiał ręcznie użyć EXTRACT, aby osiągnąć pożądany wynik:

SQL> SELECT to_char(extract(DAY FROM t_interval), 'fmS99999') || ' ' ||
  2         to_char(extract(HOUR FROM t_interval), 'fm00') || ':' ||
  3         to_char(extract(MINUTE FROM t_interval), 'fm00') || ':' ||
  4         to_char(extract(SECOND FROM t_interval), 'fm00.000')
  5    FROM (SELECT TO_DSINTERVAL('10 01:02:55.895') t_interval FROM dual)
  6  ;

TO_CHAR(EXTRACT(DAYFROMT_INTER
------------------------------
+10 01:02:55.895


To nie jest zbyt eleganckie, ale wydaje się, że jest to jedyny sposób na radzenie sobie z precyzją w mikrosekundach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawianie wielu wierszy do Oracle

  2. drukuj datę rozpoczęcia i zakończenia w jednym wierszu dla ciągłych lub nakładających się zakresów dat w Oracle SQL

  3. Oracle.ManagedDataAccess.EntityFramework — ORA-01918:użytkownik „dbo” nie istnieje

  4. Jak sprawdzić wersję dostawcy Oracle dla ole-db. Dostawca OraOLEDB.Oracle

  5. Typ tabeli w Oracle PL SQL Przykład