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

SQL:Odejmowanie 1 dnia od daty ze znacznika czasu

Użyj INTERVAL wpisz do niego. Np.:

--yesterday
SELECT NOW() - INTERVAL '1 DAY';

--Unrelated: PostgreSQL also supports some interesting shortcuts:
SELECT 
    'yesterday'::TIMESTAMP, 
    'tomorrow'::TIMESTAMP, 
    'allballs'::TIME AS aka_midnight;

Możesz wtedy wykonać następujące czynności:

SELECT 
    org_id,
    count(accounts) AS COUNT,
    ((date_at) - INTERVAL '1 DAY') AS dateat
FROM 
    sourcetable
WHERE 
    date_at <= now() - INTERVAL '130 DAYS'
GROUP BY 
    org_id,
    dateat;

WSKAZÓWKI

Wskazówka 1

Możesz dołączyć wiele operandów. Np.:jak uzyskać ostatni dzień bieżącego miesiąca?

SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';

Wskazówka 2

Możesz także utworzyć interwał za pomocą make_interval funkcja, przydatna, gdy trzeba ją utworzyć w czasie wykonywania (bez użycia literałów):

SELECT make_interval(days => 10 + 2);
SELECT make_interval(days => 1, hours => 2);
SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);

Więcej informacji:

Funkcje i operatory daty/godziny

datatype-datetime (wartości specjalne) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obliczyć medianę w PostgreSQL

  2. Wiele formuł w PostgreSQL

  3. Węzeł jest 20 razy szybszy niż .NET Core podczas łączenia się z Postgres

  4. Serwer PostgreSQL nie zamykał się w systemie Lion (Mac OS 10.7)

  5. Nie mogę połączyć mojej aplikacji Android Studio z PostgreSQL