sql >> Database >  >> RDS >> PostgreSQL

Ontvang de eerste dag van de maand in PostgreSQL

We kunnen de volgende methode in PostgreSQL gebruiken om de eerste dag van een bepaalde maand te retourneren.

Dit kan de eerste dag van de huidige maand zijn, of de eerste dag van de maand op basis van een datum die we specificeren.

Door de eerste dag van de maand te krijgen, kunnen we verdere berekeningen uitvoeren op de resulterende datum, zoals het toevoegen van een bepaald aantal dagen aan het begin van de maand, enz.

Begin van de huidige maand

Hier is een voorbeeld dat de eerste dag van de huidige maand retourneert:

SELECT date_trunc('month', now());

Resultaat:

2022-04-01 00:00:00+10

Dit gebruikt PostgreSQL's date_trunc() functie om de gewenste resultaten te retourneren. Deze functie kapt een datum/tijd-waarde af tot een gespecificeerde precisie.

In dit geval gebruik ik de now() functie om de huidige datum terug te geven, en de 'month' argument wijzigt die datum naar het begin van de maand.

We kunnen het indien nodig naar een datumwaarde casten:

SELECT date_trunc('month', now())::date;

Resultaat:

2022-04-01

Hier is het weer, samen met de werkelijke datum waarop ik het voorbeeld heb uitgevoerd:

SELECT 
    now()::date AS "Current Date",
    date_trunc('month', now())::date AS "Start of Month";

Resultaat:

+--------------+----------------+
| Current Date | Start of Month |
+--------------+----------------+
| 2022-04-09   | 2022-04-01     |
+--------------+----------------+

Begin van een bepaalde maand

Het hoeft niet het begin van de huidige maand te zijn. We kunnen elke datum specificeren, en het zal het begin van de maand retourneren, gebaseerd op die datum.

Voorbeeld:

SELECT date_trunc('month', date '2030-07-14')::date;

Resultaat:

2030-07-01

We kunnen het resultaat dan gebruiken om er andere acties op uit te voeren. We kunnen bijvoorbeeld een bepaald aantal dagen als volgt aan het resultaat toevoegen:

SELECT date_trunc('month', date '2030-07-14')::date + 20;

Resultaat:

2030-07-21

Databasevoorbeeld

Hier is een voorbeeld dat datums uit een database gebruikt:

SELECT
    rental_date,
    date_trunc('month', rental_date)::date AS "The 1st of the Month",
    date_trunc('month', rental_date)::date + 19 AS "The 20th of the Month"
FROM rental WHERE customer_id = 459 LIMIT 10;

Resultaat:

+---------------------+----------------------+-----------------------+
|     rental_date     | The 1st of the Month | The 20th of the Month |
+---------------------+----------------------+-----------------------+
| 2005-05-24 22:54:33 | 2005-05-01           | 2005-05-20            |
| 2005-06-17 02:50:51 | 2005-06-01           | 2005-06-20            |
| 2005-06-17 09:38:22 | 2005-06-01           | 2005-06-20            |
| 2005-06-17 16:40:33 | 2005-06-01           | 2005-06-20            |
| 2005-06-20 02:39:21 | 2005-06-01           | 2005-06-20            |
| 2005-06-20 12:35:44 | 2005-06-01           | 2005-06-20            |
| 2005-06-20 12:42:00 | 2005-06-01           | 2005-06-20            |
| 2005-06-21 02:39:44 | 2005-06-01           | 2005-06-20            |
| 2005-07-06 00:22:29 | 2005-07-01           | 2005-07-20            |
| 2005-07-08 02:51:23 | 2005-07-01           | 2005-07-20            |
+---------------------+----------------------+-----------------------+

  1. mysqli laatste invoeg-ID

  2. Hoe stel ik een sortering in voor een verbinding in SQL Server?

  3. Hoe een grote hoeveelheid gegevens in de sqlite-database in Android in te voegen

  4. MySQL:Hoe kan ik het MySQL-rootwachtwoord opnieuw instellen of wijzigen?