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

365日でビューを作成

    この単純なビューはそれを行います:

    create or replace view year_days as
    select trunc(sysdate, 'YYYY') + (level-1) as the_day
    from dual
    connect by level <= to_number(to_char(last_day(add_months(trunc(sysdate, 'YYYY'),11)), 'DDD'))
    /
    

    このように:

    SQL> select * from year_days;
    
    THE_DAY
    ---------
    01-JAN-11
    02-JAN-11
    03-JAN-11
    04-JAN-11
    05-JAN-11
    06-JAN-11
    07-JAN-11
    08-JAN-11
    09-JAN-11
    10-JAN-11
    11-JAN-11
    
    ...
    
    20-DEC-11
    21-DEC-11
    22-DEC-11
    23-DEC-11
    24-DEC-11
    25-DEC-11
    26-DEC-11
    27-DEC-11
    28-DEC-11
    29-DEC-11
    30-DEC-11
    31-DEC-11
    
    365 rows selected.
    
    SQL> 
    

    日付は、いくつかのOracle日付関数を適用して生成されます。

    • trunc(sysdate, 'yyyy') 今年の1月1日を教えてくれます
    • add_months(x, 11) 12月1日を教えてくれます
    • last_day(x) 12月31日
    • to_char(x, 'DDD') 今年は12月31日、今年は365、来年は366の数になります。
    • この最後の図は、行ジェネレーターの上限を示していますCONNECT BY LEVEL <= X


    1. MySQL初心者向けのDevOpsデータベース用語集

    2. OracleSQLUpdateクエリの更新には数日かかります

    3. データベースのテーブルから行を削除した場合、主キーの名前を変更する方法

    4. テーブル行の編集GUIを使用してSQLServerテーブルに行を挿入する方法-SQLServer/TSQLチュートリアルパート101