sql >> Database >  >> RDS >> PostgreSQL

Hoe u de datum van gisteren in PostgreSQL kunt krijgen

Probleem:

U wilt de datum van gisteren (zonder tijd) weergeven in een PostgreSQL-database.

Oplossing 1:

SELECT current_date - INTEGER '1' AS yesterday_date;

Ervan uitgaande dat het vandaag 24-09-2020 is, is het resultaat:

yesterday_date
23-09-2020

Discussie:

Om de datum van gisteren te krijgen, moet u één dag aftrekken van de datum van vandaag. Gebruik current_date om de datum van vandaag te krijgen. Merk op dat je geen haakjes nodig hebt aan het einde van de current_date functie. In PostgreSQL kunt u een willekeurig aantal dagen aftrekken of optellen met behulp van de INTEGER trefwoord. Omdat je hier één dag moet aftrekken, gebruik je - INTEGER '1' om de datum van gisteren te krijgen. Merk op dat het resultaat van deze berekening nog steeds het kolomtype date heeft .

Oplossing 2:

SELECT (current_date - INTERVAL '1 day')::date AS yesterday_date;

Ervan uitgaande dat het vandaag 24-09-2020 is, is het resultaat:

yesterday_date
23-09-2020

Discussie:

Krijg de datum van vandaag met behulp van current_date . U moet een interval van één dag aftrekken van de huidige datum. Gebruik hiervoor de INTERVAL trefwoord, dat elk gewenst tijd-/datuminterval creëert (hier, '1 day' , wat in PostgreSQL hetzelfde is als 24 uur). Aftrekken INTERVAL '1 day' vanaf de datum van vandaag resulteert in een kolom die is opgemaakt als een tijdstempel, dus u moet deze naar date casten . De snelste manier om dit te doen in PostgreSQL is het toevoegen van ::date naar de hele uitdrukking (vergeet niet om de uitdrukking tussen haakjes te zetten).

Natuurlijk kunt u net zo gemakkelijk teruggaan met elk tijdsinterval. Hier is een voorbeeld:

SELECT (current_date - INTERVAL '3 months 10 days')::date;

Een INTERVAL kan ook worden toegevoegd tot een datum. Dus, hier is een manier als je de datum van morgen wilt weten:

SELECT (current_date + INTERVAL '1 day')::date AS tomorrow_date;

  1. Postgres analoog naar CROSS APPLY in SQL Server

  2. WHERE-clausules dynamisch / programmatisch aan SQL toevoegen

  3. Kan PostgreSQL een uniciteitsbeperking hebben voor array-elementen?

  4. Hoe twee tabellen in één instructie in SQL Server 2005 bij te werken?