sql >> データベース >  >> RDS >> Oracle

パーツからのOracleSQL作成日

    ADD_MONTHSを使用したアプローチは次のとおりです およびEXTRACT(YEAR FROM ....) 。必要な月数を加算または減算するだけです(年を変更するだけなので、常に12の倍数です)。 TO_CHARとは異なり / TO_DATE ソリューションでは、このアプローチは飛躍日(2月29日)を処理します。一方、日付を2003年2月28日から2012年に変更すると、2月29日に変更されることに注意してください(ADD_MONTHS 月の最終日を結果の月の最終日に変更します。

    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. Oracle SQL Developerで表スペースをチェックする方法は?

    2. MySQL挿入ステートメントでのOracleからMySQLへのタイムスタンプ変換

    3. ID(データベース作成時)エラー指定キーが長すぎました

    4. SQL更新クエリの集計関数?