sql >> Database >  >> RDS >> PostgreSQL

Datum opgesplitst op basis van fiscaal jaar

Ik ben eigenlijk voorstander van de oplossing van Andomar (met de toevoeging van een proces dat automatisch de tabel Perioden vult), maar voor de lol is hier een oplossing die dit niet vereist.

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. hoe toegang te krijgen tot postgres vanuit mysql?

  2. Zoek multidimensionale jsonb-gegevens in laravel postgres

  3. Best Practice voor het maken van indexen op uw MySQL-tabellen - Rolling Index Builds

  4. Hoe MySQL Boolean Full-Text Search optimaliseren? (Of waar het door te vervangen?) - C#