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

Chuyển đổi năm thập phân thành ngày tháng

Nếu bạn bắt đầu từ giả định rằng phần thập phân được tính theo số ngày trong năm nhất định (tức là 365 hoặc 366 tùy thuộc vào đó có phải là năm nhuận hay không), bạn có thể làm điều gì đó như sau:

with
 q1 as (select 2003.024658 d from dual)
,q2 as (select d
              ,mod(d,1) as decimal_portion
              ,to_date(to_char(d,'0000')||'0101','YYYYMMDD')
               as jan01
        from q1)
,q3 as (select q2.*
              ,add_months(jan01,12)-jan01 as days_in_year
        from q2)
select d
      ,decimal_portion * days_in_year as days
      ,jan01 + (decimal_portion * days_in_year) as result
from   q3;

d: 2003.024658
days: 9.00017
result: 10-JAN-2003 12:00am



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi không thể truyền oracle BLOB từ Java Blob gốc

  2. Sử dụng truy vấn con trong câu lệnh Kiểm tra trong Oracle

  3. Báo cáo pha lê không truy xuất được dữ liệu từ cơ sở dữ liệu

  4. Rollback không hoạt động trong oracle bằng liquibase

  5. Khóa ngoại trong các lược đồ thay thế với Oracle?