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

Uzyskaj liczbę dni w miesiącu w PostgreSQL

Oto przykład wykorzystania PostgreSQL do zwrócenia liczby dni w miesiącu na podstawie podanej daty.

SELECT 
    date_part(
        'days', 
        (date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')
        );

Wynik:

31

Tutaj użyliśmy date_part() funkcja zwracająca numer dnia ostatniego dnia miesiąca. Ostatni dzień miesiąca otrzymaliśmy za pomocą date_trunc() aby skrócić dokładność daty do miesiąca, a także wykonując pewne przesunięcie daty w wyniku.

Oto kolejny przykład, tym razem zwracający liczbę dni w każdym miesiącu:

SELECT 
    date_part('days', (date_trunc('month', date '2030-01-14') + interval '1 month - 1 day')) AS "Jan",
    date_part('days', (date_trunc('month', date '2030-02-14') + interval '1 month - 1 day')) AS "Feb",
    date_part('days', (date_trunc('month', date '2030-03-14') + interval '1 month - 1 day')) AS "Mar",
    date_part('days', (date_trunc('month', date '2030-04-14') + interval '1 month - 1 day')) AS "Apr",
    date_part('days', (date_trunc('month', date '2030-05-14') + interval '1 month - 1 day')) AS "May",
    date_part('days', (date_trunc('month', date '2030-06-14') + interval '1 month - 1 day')) AS "Jun",
    date_part('days', (date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')) AS "Jul",
    date_part('days', (date_trunc('month', date '2030-08-14') + interval '1 month - 1 day')) AS "Aug",
    date_part('days', (date_trunc('month', date '2030-09-14') + interval '1 month - 1 day')) AS "Sep",
    date_part('days', (date_trunc('month', date '2030-10-14') + interval '1 month - 1 day')) AS "Oct",
    date_part('days', (date_trunc('month', date '2030-11-14') + interval '1 month - 1 day')) AS "Nov",
    date_part('days', (date_trunc('month', date '2030-12-14') + interval '1 month - 1 day')) AS "Dec";

Wynik:

+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|  31 |  28 |  31 |  30 |  31 |  30 |  31 |  31 |  30 |  31 |  30 |  31 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Pamiętaj, że liczba dni w lutym może się zmienić w zależności od tego, czy jest to rok przestępny, czy nie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunkowa instrukcja INSERT INTO w postgresie

  2. Zapytanie PostgreSQL do liczenia/grupowania według dnia i wyświetlania dni bez danych

  3. Jak zaktualizować wszystkie kolumny za pomocą INSERT ... ON CONFLICT ...?

  4. postgresql zwraca 0, jeśli zwracana wartość ma wartość null

  5. Dodaj godziny do wartości czasu w PostgreSQL