I PostgreSQL er make_time()
funktionen giver dig mulighed for at oprette en tid fra felterne time, minutter og sekunder.
Syntaks
Funktionen har følgende syntaks:
make_time(hour int, min int, sec double precision)
Hvor hour
er timedelen, min
er minutterdelen og sec
er sekunddelen.
Time og minutter er angivet som et heltal , sekunderne leveres som dobbelt præcision .
Resultatet returneres som en tid . Mere præcist returneres det som tid uden tidszone .
Eksempel
Her er et grundlæggende eksempel at demonstrere.
SELECT make_time(7, 45, 15.08);
Resultat:
07:45:15.08
Og vi kan bekræfte returtypen med følgende forespørgsel.
SELECT pg_typeof(make_time(7, 45, 15.08));
Resultat:
time without time zone
pg_typeof()
funktion returnerer datatypen for dets argument, og så jeg sendte make_time()
som argumentet..
Udenfor rækkevidde
Hvis nogen af argumenterne er uden for rækkevidden af de mulige værdier for dens datodel, får du fejlen "uden for område".
SELECT make_time(25, 45, 15.08);
Resultat:
ERROR: time field value out of range: 25:45:15.08
At sende strenge som argumenter
Postgres-dokumentationen angiver, at argumenterne skal være heltal (og dobbelt præcision i tilfælde af seconds
argument), men videregivelse af strenge virker også (sandsynligvis fordi de implicit konverteres til heltal), så længe hvert argument er inden for dets rette område.
SELECT make_time('7', '45', '15.08');
Resultat:
07:45:15.08
Igen kan vi bruge pg_type()
for at kontrollere den resulterende datatype.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Resultat:
time without time zone
Du skal dog stadig sikre dig, at hvert argument er gyldigt, når det først er konverteret til et heltal, ellers får du en fejl.
SELECT make_time('25', '45', '15.08');
Resultat:
ERROR: time field value out of range: 25:45:15.08