In PostgreSQL, de make_time()
Met deze functie kunt u een tijd maken op basis van de velden voor uren, minuten en seconden.
Syntaxis
De functie heeft de volgende syntaxis:
make_time(hour int, min int, sec double precision)
Waar hour
is het uurgedeelte, min
is het minutengedeelte, en sec
is het tweede deel.
Het uur en de minuten worden weergegeven als een geheel getal , de seconden worden geleverd als dubbele precisie .
Het resultaat wordt geretourneerd als een tijd . Om precies te zijn, het wordt geretourneerd als tijd zonder tijdzone .
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren.
SELECT make_time(7, 45, 15.08);
Resultaat:
07:45:15.08
En we kunnen het retourtype verifiëren met de volgende vraag.
SELECT pg_typeof(make_time(7, 45, 15.08));
Resultaat:
time without time zone
De pg_typeof()
functie retourneert het gegevenstype van zijn argument, en dus heb ik make_time()
. doorgegeven als het argument..
Buiten bereik
Als een van de argumenten buiten het bereik van de mogelijke waarden voor het datumgedeelte valt, krijgt u de foutmelding 'buiten bereik'.
SELECT make_time(25, 45, 15.08);
Resultaat:
ERROR: time field value out of range: 25:45:15.08
Snaren doorgeven als argument
De Postgres-documentatie stelt dat de argumenten gehele getallen moeten zijn (en dubbele precisie in het geval van de seconds
argument), maar het doorgeven van strings werkt ook (waarschijnlijk omdat ze impliciet worden geconverteerd naar gehele getallen), zolang elk argument zich binnen het juiste bereik bevindt.
SELECT make_time('7', '45', '15.08');
Resultaat:
07:45:15.08
Opnieuw kunnen we pg_type()
. gebruiken om het resulterende gegevenstype te controleren.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Resultaat:
time without time zone
U moet er echter nog steeds voor zorgen dat elk argument geldig is nadat het is geconverteerd naar een geheel getal, anders krijgt u een foutmelding.
SELECT make_time('25', '45', '15.08');
Resultaat:
ERROR: time field value out of range: 25:45:15.08