Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

khoảng thời gian định dạng với to_char

bạn có thể truyền kết quả nếu bạn muốn độ chính xác thấp hơn:

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

Chỉnh sửa bình luận OP sau:

Từ Tài liệu Oracle (11gr1):

Các kiểu dữ liệu khoảng thời gian không có mô hình định dạng. Do đó, để điều chỉnh bản trình bày của chúng, bạn phải kết hợp các hàm ký tự như EXTRACT và nối các thành phần.

Có vẻ như bạn sẽ phải sử dụng EXTRACT theo cách thủ công để đạt được đầu ra mong muốn:

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


Điều này không được thanh lịch cho lắm nhưng có vẻ như đây là cách duy nhất để xử lý độ chính xác đến từng micro giây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt Oracle 12c Enterprise Edition trên Windows 7

  2. Làm thế nào để tạo thủ tục trong Oracle SQL Developer?

  3. Làm cách nào để hủy tất cả các phiên kết nối với cơ sở dữ liệu oracle của tôi?

  4. Làm thế nào để cấu hình Ruby on Rails với Oracle?

  5. Sự khác biệt giữa oracle DATE và TIMESTAMP