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

会計年度に基づく日付分割

    私は実際にはAndomarのソリューション(Periodsテーブルを自動的に埋めるプロセスを追加)を好みますが、楽しみのために、それを必要としないソリューションがあります。

    CREATE TABLE your_table (start_date date, end_date date);
    INSERT INTO your_table VALUES ('Jan-17-2008', 'May-20-2009');
    
    SELECT
        GREATEST(start_date, ('04-01-'||series.year)::date) AS year_start,
        LEAST(end_date, ('03-31-'||series.year + 1)::date) AS year_end
    FROM
        (SELECT
            start_date,
            end_date,
            generate_series(
                date_part('year', your_table.start_date - INTERVAL '3 months')::int,
                date_part('year', your_table.end_date - INTERVAL '3 months')::int)
        FROM your_table) AS series(start_date, end_date, year)
    ORDER BY
        start_date;
    


    1. RailsはSQLSELECTステートメントの定数を無視します

    2. pythonmysqlフェッチクエリ

    3. 戻り値の横にエラーが表示され続けるVARCHAR(4)

    4. Angular2とMySQLの概念