sql >> Databáze >  >> RDS >> Oracle

Oracle SQL Datum vytvoření z dílů

Zde je přístup pomocí ADD_MONTHS a EXTRACT(YEAR FROM ....) . Jednoduše přičtete nebo odečtete potřebný počet měsíců (vždy násobek 12, protože měníte pouze rok). Na rozdíl od TO_CHAR / TO_DATE řešení, tento přístup zvládá přestupné dny (29. února). Na druhou stranu mějte na paměti, že změna data z 28. února 2003 na rok 2012 změní datum na 29. února (ADD_MONTHS změní poslední den v měsíci na poslední den výsledného měsíce).

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. T-SQL:Jak používat parametry v dynamickém SQL?

  2. Vytvořte řetězec z pole

  3. Uložit výsledky dotazu SQLite do textového souboru

  4. Jak spočítat počet řádků v tabulce v SQL