In PostgreSQL die make_time()
Mit dieser Funktion können Sie aus den Stunden-, Minuten- und Sekundenfeldern eine Uhrzeit erstellen.
Syntax
Die Funktion hat folgende Syntax:
make_time(hour int, min int, sec double precision)
Wobei hour
ist der Stundenteil, min
ist der Minutenteil und sec
ist der Sekundenteil.
Die Stunde und die Minuten werden als Ganzzahl angegeben , werden die Sekunden mit doppelter Genauigkeit angegeben .
Das Ergebnis wird als Zeit zurückgegeben . Genauer gesagt wird es als Zeit ohne Zeitzone zurückgegeben .
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung.
SELECT make_time(7, 45, 15.08);
Ergebnis:
07:45:15.08
Und wir können den Rückgabetyp mit der folgenden Abfrage überprüfen.
SELECT pg_typeof(make_time(7, 45, 15.08));
Ergebnis:
time without time zone
Der pg_typeof()
Die Funktion gibt den Datentyp ihres Arguments zurück, also habe ich make_time()
übergeben als Argument..
Außer Reichweite
Wenn eines der Argumente außerhalb des Bereichs der möglichen Werte für seinen Datumsteil liegt, erhalten Sie einen „Out of Range“-Fehler.
SELECT make_time(25, 45, 15.08);
Ergebnis:
ERROR: time field value out of range: 25:45:15.08
Strings als Argumente übergeben
Die Postgres-Dokumentation besagt, dass die Argumente ganze Zahlen sein müssen (und doppelte Genauigkeit im Fall von seconds
Argument), aber das Übergeben von Zeichenfolgen funktioniert auch (wahrscheinlich, weil sie implizit in Ganzzahlen konvertiert werden), solange jedes Argument innerhalb seines richtigen Bereichs liegt.
SELECT make_time('7', '45', '15.08');
Ergebnis:
07:45:15.08
Wieder können wir pg_type()
verwenden um den resultierenden Datentyp zu überprüfen.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Ergebnis:
time without time zone
Sie müssen jedoch immer noch sicherstellen, dass jedes Argument gültig ist, sobald es in eine Ganzzahl umgewandelt wurde, andernfalls erhalten Sie eine Fehlermeldung.
SELECT make_time('25', '45', '15.08');
Ergebnis:
ERROR: time field value out of range: 25:45:15.08