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

3 функции, които получават деня, месеца и годината от дата в PostgreSQL

PostgreSQL ни предоставя няколко начина да получим деня, месеца и годината от дадена дата.

Три функции, които веднага идват на ум са; DATE_PART() , EXTRACT() и TO_CHAR() .

EXTRACT()

EXTRACT() функция извлича подполета като година, месец, час или минута, част от стойност за дата/час.

Пример:

SELECT EXTRACT(YEAR FROM date '2035-10-30');

Резултат:

2035

Можем да върнем различни части от дата в отделни полета, като направим три отделни извиквания на тази функция:

SELECT 
    EXTRACT(DAY FROM date '2035-10-30') AS "Day",
    EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
    EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
    EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
    EXTRACT(YEAR FROM date '2035-10-30') AS "Year";

Резултат:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Тук върнах деня от месеца, деня от седмицата, деня от годината, месеца и годината от датата.

Вижте как Extract() работи в PostgreSQL за повече примери и списък с имена на полета, които могат да бъдат върнати от тази функция.

DATE_PART()

DATE_PART() функцията е еквивалентна на EXTRACT() , но с малко по-различен синтаксис.

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Резултат:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Тази функция изисква първият аргумент да бъде предоставен като низ и запетая разделя двата аргумента вместо FROM ключова дума.

TO_CHAR()

TO_CHAR() функцията е по-гъвкава, тъй като може да се използва за осигуряване на по-голямо разнообразие от изходи. Например, можем да използваме тази функция, за да върнем деня, месеца и годината всички в едно поле:

SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');

Резултат:

 Saturday , 02nd December  2045

Можем да използваме fm модификатор на шаблона, за да потисне всяко подпълване, което може да бъде приложено:

SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');

Резултат:

 Monday, 1st April 2165

Също така имайте предвид, че th шаблонният модификатор е достатъчно умен, за да знае дали st , nd , rd , или th трябва да се добави.

Ето пример, който използва различни извиквания към TO_CHAR() за извеждане на различни части от дата в отделни полета:

SELECT 
    TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
    TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
    TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
    TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";

Резултат:

  Day   | DD | Month | YYYY 
--------+----+-------+------
 Monday | 1  | April | 2165

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при PG COPY:невалиден синтаксис на въвеждане за цяло число

  2. Какво да проверите дали използването на паметта на PostgreSQL е високо

  3. Как мога да изпратя някаква http заявка от postgresql функция или тригер

  4. персонализирайте пейджър в psql

  5. Намерете записи, където присъединяването не съществува