Oracle
 sql >> база данни >  >> RDS >> Oracle

формат интервал с to_char

можете да хвърлите резултата, ако искате по-малко прецизност:

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

Редактирайте следния коментар на ОП:

От документацията на Oracle (11gr1):

Интервалните типове данни нямат форматни модели. Следователно, за да коригирате представянето им, трябва да комбинирате функции на символи като ИЗВЪРХВАНЕ и да обединявате компонентите.

Изглежда, че ще трябва ръчно да използвате EXTRACT, за да постигнете желания резултат:

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


Това не е много елегантно, но изглежда, че е единственият начин да се справите с точността на микросекунди.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво представляват Oracle Joins (Sql Joins)?

  2. Инсталирайте Oracle Client от командния ред без взаимодействие с потребителя

  3. Попълване на PL/SQL таблица от блок в Oracle D2k Forms

  4. Генерирайте тестови данни с помощта на Oracle PL/SQL разработчик

  5. Грешка при инсталиране на клиента на Oracle – пътят е твърде дълъг