add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
select version();
version
PostgreSQL 16.0 (Debian 16.0-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
SELECT 1
Create Table tbl ( id Int, date_1 Date, date_2 Date );
Insert Into tbl VALUES ( 1, '2022-01-01', '2022-01-31' ),
( 2, '2022-01-01', '2023-01-31' ),
( 3, '2024-01-01', '2024-03-31' );
Select * From tbl;
CREATE TABLE
INSERT 0 3
id date_1 date_2
1 2022-01-01 2022-01-31
2 2022-01-01 2023-01-31
3 2024-01-01 2024-03-31
SELECT 3
/* same month - same year */
Select *
From tbl
Where To_Char(date_1, 'yyyymm') = To_Char(date_2, 'yyyymm')
id date_1 date_2
1 2022-01-01 2022-01-31
SELECT 1
Select *
From tbl
Where Date_Trunc('Month', date_1) = Date_Trunc('Month', date_2)
id date_1 date_2
1 2022-01-01 2022-01-31
SELECT 1
Select *
From tbl
Where Extract(YEAR From date_1) = Extract(YEAR From date_2) And
Extract(MONTH From date_1) = Extract(MONTH From date_2)
id date_1 date_2
1 2022-01-01 2022-01-31
SELECT 1
Select *
From tbl
Where DATE_PART('YEAR', date_1) = DATE_PART('YEAR', date_2) And
DATE_PART('MONTH', date_1) = DATE_PART('MONTH', date_2)
id date_1 date_2
1 2022-01-01 2022-01-31
SELECT 1
/* same month - any year */
Select *
From tbl
Where To_Char(date_1, 'mm') = To_Char(date_2, 'mm')
id date_1 date_2
1 2022-01-01 2022-01-31
2 2022-01-01 2023-01-31
SELECT 2
Select *
From tbl
Where Extract(MONTH From date_1) = Extract(MONTH From date_2)
id date_1 date_2
1 2022-01-01 2022-01-31
2 2022-01-01 2023-01-31
SELECT 2
Select *
From tbl
Where DATE_PART('MONTH', date_1) = DATE_PART('MONTH', date_2)
id date_1 date_2
1 2022-01-01 2022-01-31
2 2022-01-01 2023-01-31
SELECT 2