PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вземете броя на дните в месеца в PostgreSQL

Ето пример за използване на PostgreSQL за връщане на броя дни в месеца въз основа на дадена дата.

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

Резултат:

31

Тук използвахме date_part() функция за връщане на номера на деня на последния ден от месеца. Получихме последния ден от месеца с помощта на date_trunc() за да съкратите точността на датата до месеца, както и чрез извършване на известно изместване на датата върху резултата.

Ето още един пример, този път връща броя на дните във всеки месец:

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";

Резултат:

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

Имайте предвид, че броят на дните за февруари може да се промени в зависимост от това дали е високосна година или не.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция за сходство в Postgres с pg_trgm

  2. Как да използвате няколко израза WITH в една заявка на PostgreSQL?

  3. Как мога да накарам инсталирането на gem да работи на OS X Lion с Ruby 1.8.7 без сег неизправност?

  4. Postgres ръчно променя последователността

  5. Тествайте за нула във функция с различни параметри