sql >> Database >  >> RDS >> PostgreSQL

Hoe krijg ik een tekenreeks voor de start- en einddatum van de week in PostgreSQL?

U kunt date_trunc('week', ...) .

Bijvoorbeeld:

SELECT date_trunc('week', '2012-07-25 22:24:22'::timestamp);
-> 2012-07-23 00:00:00

Vervolgens kun je dit omzetten in een datum, als je niet geïnteresseerd bent in een starttijd.

Om ook de einddatum te krijgen:

SELECT    date_trunc('week', '2012-07-25 22:24:22'::timestamp)::date
   || ' '
   || (date_trunc('week', '2012-07-25 22:24:22'::timestamp)+ '6 days'::interval)::date;

-> 2012-07-23 2012-07-29

(Ik heb hier de standaardopmaak gebruikt, je kunt dit natuurlijk aanpassen om MM/DD/YYYY te gebruiken.)

Merk op dat, als u vergelijkingen wilt maken op tijdstempels, in plaats van (date_trunc('week', ...) + '6 days'::interval , wilt u misschien een hele week toevoegen en een strikte vergelijking gebruiken voor het einde van de week.

Dit sluit y . uit tijdstempels op de laatste dag van de week (aangezien de sluitingstijd middernacht op de dag is).

    date_trunc('week', x)::date <= y::timestamp
AND y::timestamp <= (date_trunc('week', x) + '6 days'::interval)::date

Dit omvat hen:

    date_trunc('week', x)::date <= y::timestamp
AND y::timestamp < (date_trunc('week', x) + '1 week'::interval)

(Dat is in de zeldzame gevallen waarin u date_trunc niet kunt gebruiken op y rechtstreeks.)

Als uw week op een zondag begint, vervangt u date_trunc('week', x)::date met date_trunc('week', x + '1 day'::interval)::date - '1 day'::interval zou moeten werken.



  1. Hoe kan ik Npgsql voorzien van een aangepast gegevenstype als parameter?

  2. alleen selecteren bij andere waarde

  3. joomla 1.5.22 op mysql 5.5

  4. Java - Uitzondering in hoofdthread java.lang.Error:onopgeloste compilatieproblemen