sql >> Database teknologi >  >> RDS >> PostgreSQL

SQL:Trækker 1 dag fra en tidsstempeldato

Brug INTERVAL skriv til det. F.eks.:

--yesterdaySELECT NOW() - INTERVAL '1 DAY';--Urelateret:PostgreSQL understøtter også nogle interessante genveje:SELECT 'yesterday'::TIMESTAMP, 'i morgen'::TIMESTAMP, 'allballs'::TIME AS aka_midnight; 

Du kan derefter gøre følgende:

VÆLG org_id, count(accounts) AS COUNT, ((date_at) - INTERVAL '1 DAY') AS dateatFROM sourcetableWHERE date_at <=now() - INTERVAL '130 DAYS'GROUP BY org_id, date; 

TIPS

Tip 1

Du kan tilføje flere operander. F.eks.:hvordan får man den sidste dag i den aktuelle måned?

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

Tip 2

Du kan også oprette et interval ved hjælp af make_interval funktion, nyttig, når du skal oprette den under kørsel (ikke ved hjælp af bogstaver):

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

Flere oplysninger:

Dato/tid funktioner og operatører

datatype-datetime (særlige værdier) .



  1. Importerer stor sql-fil til MySql via kommandolinjen

  2. Hvordan konverterer jeg et bredde/længde-par til en PostGIS-geografitype?

  3. Hvordan viser du alle tabeller med dataændringer inden for de seneste 24 timer?

  4. Postgres begrænsning