Obě řešení zahrnují poslední den předchozího měsíce a také zahrnout celý „dnes“.
Na date
sloupec:
SELECT *
FROM tbl
WHERE my_date BETWEEN date_trunc('month', now())::date - 1
AND now()::date
Od date
můžete odečíst prosté celočíselné hodnoty (ale ne z timestamp
) odečíst dny. Toto je nejjednodušší a nejrychlejší způsob.
Pro timestamp
sloupec:
SELECT *
FROM tbl
WHERE my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND my_timestamp < date_trunc('day' , now()) + interval '1 day'
Všimněte si, že používám <
operátor pro druhou podmínku, abyste získali přesné výsledky (~ "do zítřka").
Nevysílám do date
v druhém dotazu. Místo toho přidám interval '1 day'
, abyste se vyhnuli přehazování tam a zpět.
Podívejte se na typy data/času a funkce v příručce.