I PostgreSQL, make_time()
funktionen låter dig skapa en tid från dess fält för timme, minuter och sekunder.
Syntax
Funktionen har följande syntax:
make_time(hour int, min int, sec double precision)
Där hour
är timdelen, min
är minutdelen och sec
är den andra delen.
Timmen och minuterna anges som ett heltal , sekunderna tillhandahålls som dubbel precision .
Resultatet returneras som en tid . Mer exakt, det returneras som tid utan tidszon .
Exempel
Här är ett grundläggande exempel att visa.
SELECT make_time(7, 45, 15.08);
Resultat:
07:45:15.08
Och vi kan verifiera returtypen med följande fråga.
SELECT pg_typeof(make_time(7, 45, 15.08));
Resultat:
time without time zone
pg_typeof()
funktion returnerar datatypen för dess argument, och så jag skickade make_time()
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 "utom intervall"-felet.
SELECT make_time(25, 45, 15.08);
Resultat:
ERROR: time field value out of range: 25:45:15.08
Att skicka strängar som argument
Postgres-dokumentationen säger att argumenten måste vara heltal (och dubbel precision i fallet med seconds
argument), men att skicka strängar fungerar också (förmodligen för att de implicit omvandlas till heltal), så länge som varje argument är inom sitt rätta intervall.
SELECT make_time('7', '45', '15.08');
Resultat:
07:45:15.08
Återigen kan vi använda pg_type()
för att kontrollera den resulterande datatypen.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Resultat:
time without time zone
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.
SELECT make_time('25', '45', '15.08');
Resultat:
ERROR: time field value out of range: 25:45:15.08