PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak określić ostatni dzień poprzedniego miesiąca za pomocą PostgreSQL?

Oba rozwiązania zawierają ostatni dzień poprzedniego miesiąca, a także uwzględnij wszystkie „dzisiaj”.

Na date kolumna:

SELECT *
FROM   tbl
WHERE  my_date BETWEEN date_trunc('month', now())::date - 1
               AND     now()::date

Możesz odjąć zwykłe wartości całkowite od date (ale nie z timestamp ), aby odjąć dni. To najprostszy i najszybszy sposób.

Dla timestamp kolumna:

SELECT *
FROM   tbl
WHERE  my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND    my_timestamp <  date_trunc('day'  , now()) + interval '1 day'

Zauważ, że używam < operator drugiego warunku, aby uzyskać dokładne wyniki (~ „przed jutrem”).

Nie przesyłam na date w drugim zapytaniu. Zamiast tego dodaję interval '1 day' , aby uniknąć rzucania w tę i z powrotem.

Zapoznaj się z typami i funkcjami daty/czasu w instrukcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja wierszy bazy danych bez blokowania tabeli w PostgreSQL 9.2

  2. Wykorzystanie automatyzacji do przyspieszenia testów wydań na PostgreSQL

  3. użyj polecenia nazwa_bazy_danych w PostgreSQL

  4. Pobieranie nazwy bieżącej funkcji wewnątrz funkcji za pomocą plpgsql

  5. Aktualizacje oparte na niestandardowych wyzwalaczach dla PostgreSQL