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

Как make_date() работи в PostgreSQL

В PostgreSQL, make_date() функцията ви позволява да създадете дата от отделните й полета за година, месец и ден.

Всяка част от датата е предоставена като цяло число , а резултатът се връща като дата .

Синтаксис

Функцията има следния синтаксис:

make_date(year int, month int, day int)

Където year , month и day са цели числа, представляващи годината, месеца и деня на датата.

Пример

Ето основен пример за демонстрация.

SELECT make_date(2020, 07, 25);

Резултат:

2020-07-25

И можем да проверим дали връща тип данни дата със следната заявка.

SELECT pg_typeof(make_date(2020, 07, 25));

Резултат:

date

pg_typeof() функцията връща типа данни на своя аргумент и затова предадох make_date() като аргумент...

Извън обхват

Ако някой от аргументите е извън диапазона на възможните стойности за неговата част от датата, ще получите грешка „извън диапазона“.

SELECT make_date(2020, 17, 25);

Резултат:

ERROR: date field value out of range: 2020-17-25

Ето го отново с месец от 00:

SELECT make_date(2020, 00, 25);

Резултат:

date field value out of range: 2020-00-25

Подаване на низове като аргументи

Документацията на Postgres гласи, че аргументите трябва да са цели числа, но предаването на низове изглежда работи (вероятно защото са имплицитно преобразувани в цели числа), стига всеки аргумент да е в правилния си диапазон.

SELECT make_date('2020', '07', '25');

Резултат:

2020-07-25

Отново можем да използваме pg_type() за да проверите дали резултатът всъщност е дата тип данни.

SELECT pg_typeof(make_date('2020', '07', '25'));

Резултат:

date

Все пак трябва да се уверите, че всеки аргумент ще бъде валиден, след като бъде преобразуван в цяло число, в противен случай ще получите грешка като следната.

SELECT make_date(2020, 'July', 25);

Резултат:

ERROR: invalid input syntax for type integer: "July"
LINE 1: SELECT make_date(2020, 'July', 25);

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Условен оператор INSERT INTO в postgres

  2. Намерете размера на байтовете на ред в PostgreSQL

  3. Проверете дали в PostgreSQL вече съществува дефиниран от потребителя тип

  4. Django:Група заявки по месец

  5. Грешка при инсталиране на psycopg2==2.6.2