sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur make_date() fungerar i PostgreSQL

I PostgreSQL, make_date() funktionen låter dig skapa ett datum från dess separata år, månad och dag fält.

Varje datumdel tillhandahålls som ett heltal , och resultatet returneras som ett datum .

Syntax

Funktionen har följande syntax:

make_date(year int, month int, day int)

Där year , month och day är heltal som representerar år, månad och dag för datumet.

Exempel

Här är ett grundläggande exempel att visa.

SELECT make_date(2020, 07, 25);

Resultat:

2020-07-25

Och vi kan verifiera att den returnerar datatypen datum med följande fråga.

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

Resultat:

date

pg_typeof() funktion returnerar datatypen för dess argument, och så jag skickade make_date() som argument...

Utanför räckvidd

Om något av argumenten ligger utanför intervallet för de möjliga värdena för dess datumdel, kommer du att få ett "utanför intervallet"-felet.

SELECT make_date(2020, 17, 25);

Resultat:

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

Här är den igen med en månad 00:

SELECT make_date(2020, 00, 25);

Resultat:

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

Att skicka strängar som argument

Postgres-dokumentationen säger att argumenten måste vara heltal, men att skicka strängar verkar fungera (förmodligen för att de implicit omvandlas till heltal), så länge som varje argument är inom sitt rätta intervall.

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

Resultat:

2020-07-25

Återigen kan vi använda pg_type() för att kontrollera att resultatet faktiskt är ett datum datatyp.

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

Resultat:

date

Du måste dock fortfarande se till att varje argument är giltigt när det konverterats till ett heltal, annars får du ett felmeddelande som följande.

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

Resultat:

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

  1. Välj topp tre värden i varje grupp

  2. Cloud Vendor Deep-Dive:PostgreSQL på Google Cloud Platform (GCP)

  3. ROLLBACK TRUNCATE i SQL Server

  4. Hur APPROX_COUNT_DISTINCT() fungerar i SQL Server