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

Data utworzenia Oracle SQL z części

Oto podejście wykorzystujące ADD_MONTHS i EXTRACT(YEAR FROM ....) . Po prostu dodajesz lub odejmujesz potrzebną liczbę miesięcy (zawsze wielokrotność 12, ponieważ zmieniasz tylko rok). W przeciwieństwie do TO_CHAR / TO_DATE rozwiązania, to podejście obsługuje dni przestępne (29 lutego). Z drugiej strony należy pamiętać, że zmiana daty z 28 lutego 2003 na rok 2012 zmieni ją na 29 lutego (ADD_MONTHS zmienia ostatni dzień miesiąca na ostatni dzień miesiąca wynikowego).

with
     inputs as (
       select date '2013-03-22' as effective_date,
              date '2017-08-14' as point_date
       from   dual
     )
-- end of TEST data (do not include in the solution!)
select effective_date, point_date,
       add_months(point_date, 12 * ( extract (year from effective_date) - 
                                     extract (year from point_date)     )
                 ) as mixed_date
from   inputs;

EFFECTIVE_DATE  POINT_DATE  MIXED_DATE
--------------  ----------  ----------
03/22/2013      08/14/2017  08/14/2013


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unikanie pojedynczego cudzysłowu podczas korzystania z JdbcTemplate

  2. Tomcat nie może znaleźć pliku gdk_custom.jar, Oracle nie może go utworzyć?

  3. Zmiana tego zapytania na grupowanie wierszy i filtrowanie wszystkich wierszy oprócz tego o najmniejszej wartości

  4. Jak połączyć się z bazą danych Oracle 11 z . internet

  5. Oracle uzyskuje wartość sumy kontrolnej dla porcji danych zdefiniowanej przez klauzulę select