In MariaDB, TIME_FORMAT()
is een ingebouwde datum- en tijdfunctie die een tijdwaarde opmaakt volgens de gegeven notatiereeks.
Het werkt vergelijkbaar met de DATE_FORMAT()
functie, behalve dat de formaatreeks alleen formaatspecificaties voor uren, minuten en seconden mag bevatten.
Het vereist twee argumenten; de tijd en de notatiereeks.
Syntaxis
De syntaxis gaat als volgt:
TIME_FORMAT(time,format)
Waar time
is de tijdwaarde en format
is de opmaakreeks. Zie MariaDB Format Strings voor een lijst met acceptabele formaatspecificaties. Zoals vermeld, worden alleen de formaatspecificaties voor uren, minuten en seconden geaccepteerd. Alle andere waarden retourneren null
.
Voorbeeld
Hier is een voorbeeld:
SELECT TIME_FORMAT('10:30:45', '%H %i %S');
Resultaat:
+-------------------------------------+ | TIME_FORMAT('10:30:45', '%H %i %S') | +-------------------------------------+ | 10 30 45 | +-------------------------------------+
Hier is het weer, maar deze keer bieden we een meer uitgebreide opmaakreeks:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Resultaat:
+--------------------------------------+ | Result | +--------------------------------------+ | 10 hours, 30 minutes, and 45 seconds | +--------------------------------------+
Grotere uren
TIME
waarden kunnen in het bereik liggen '-838:59:59.999999'
naar '838:59:59.999999'
.
Daarom kan het uurgedeelte veel hoger zijn dan 23
:
SELECT TIME_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Resultaat:
+---------------------------------------+ | Result | +---------------------------------------+ | 810 hours, 30 minutes, and 45 seconds | +---------------------------------------+
Negatieve tijdwaarden
Hier is een voorbeeld met een negatieve tijdwaarde:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Resultaat:
+----------------------------------------+ | Result | +----------------------------------------+ | -810 hours, 30 minutes, and 45 seconds | +----------------------------------------+
Tijden buiten bereik
Als u echter een tijdwaarde buiten het bereik opgeeft, wordt de bovengrens van dat bereik geretourneerd, samen met een waarschuwing:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Resultaat:
+---------------------------------------+ | Result | +---------------------------------------+ | 838 hours, 59 minutes, and 59 seconds | +---------------------------------------+ 1 row in set, 1 warning (0.003 sec)
Laten we de waarschuwing eens bekijken:
SHOW WARNINGS;
Resultaat:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '910:30:45' | +---------+------+---------------------------------------------+
Ongeldige argumenten
Bij het doorgeven van ongeldige argumenten, TIME_FORMAT()
retourneert null
met een waarschuwing:
SELECT TIME_FORMAT('Homer', 'Simpson');
Resultaat:
+---------------------------------+ | TIME_FORMAT('Homer', 'Simpson') | +---------------------------------+ | NULL | +---------------------------------+ 1 row in set, 1 warning (0.009 sec)
Controleer de waarschuwing:
SHOW WARNINGS;
Resultaat:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Ongeldige notatietekenreeks
De opmaakreeks mag alleen opmaakspecificaties voor uren, minuten en seconden bevatten. Alle andere formaatspecificaties resulteren in null
wordt geretourneerd:
SELECT TIME_FORMAT('10:30:45', '%M %W');
Resultaat:
+----------------------------------+ | TIME_FORMAT('10:30:45', '%M %W') | +----------------------------------+ | NULL | +----------------------------------+
Ontbrekend argument
Aanroepen van TIME_FORMAT()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT TIME_FORMAT();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'
En nog een voorbeeld:
SELECT TIME_FORMAT('10:09:10');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'