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