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

Konwertuj rok dziesiętny na datę

Jeśli zaczniesz od założenia, że ​​część dziesiętna została obliczona zgodnie z liczbą dni w danym roku (tj. 365 lub 366 w zależności od tego, czy był to rok przestępny), możesz zrobić coś takiego:

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. jak odbudować kolejkę wf_java_deferred

  2. Jak edytować procedurę składowaną w Oracle SQL Developer?

  3. Odpowiednik funkcji R cbind() w Oracle?

  4. Jak ustalić optymalny rozmiar pobierania dla zapytania wybierającego?

  5. Wyjątek Io:błąd Oracle ORA-12650 po aktualizacji Oracle do 12g