sql >> Databáze >  >> RDS >> PostgreSQL

Jak zjistím poslední den předchozího měsíce pomocí PostgreSQL?

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.



  1. T-sql - určuje, zda je hodnota celé číslo

  2. Úvod do ML{.NET}

  3. SQL Server LIKE obsahující znaky hranatých závorek

  4. Jak získat data za poslední měsíc v MySQL