Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ubah tahun desimal menjadi tanggal

Jika Anda mulai dari asumsi bahwa bagian desimal dihitung menurut jumlah hari pada tahun tertentu (yaitu 365 atau 366 tergantung pada apakah itu tahun kabisat), Anda dapat melakukan sesuatu seperti ini:

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. Optimalkan Permintaan Oracle

  2. Refresh / Memperbarui layar formulir di Oracle D2k Forms 6i

  3. PHP - oci_connect tidak ditemukan

  4. Cara Menghitung Perbedaan Antara Dua Timestamp di Oracle

  5. Bagaimana cara menulis skrip penyisipan Oracle dengan satu bidang sebagai CLOB?