In MariaDB, TIME()
is een ingebouwde datum- en tijdfunctie die het tijdgedeelte extraheert uit een bepaalde tijd- of datetime-expressie en dit als een tekenreeks retourneert.
Het accepteert één argument, namelijk de tijd- of datetime-waarde waarvoor u de tijd wilt extraheren.
Syntaxis
De syntaxis gaat als volgt:
TIME(expr)
Waar expr
is de tijd- of datetime-expressie waarvoor de tijd moet worden geëxtraheerd.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT TIME('2030-02-01 10:30:45');
Resultaat:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Tijdwaarden
Hier is een voorbeeld dat de tijd extraheert uit een tijdwaarde:
SELECT TIME('10:30:45');
Resultaat:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Microseconden
Hier is een voorbeeld met microseconden:
SELECT TIME('2030-02-01 10:30:45.123456');
Resultaat:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
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('578:30:45');
Resultaat:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Negatieve tijden
Negatieve tijden zijn geldig:
Voorbeeld
SELECT TIME('-578:30:45');
Resultaat:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
Uren buiten bereik
Tijdwaarden buiten het bereik '-838:59:59.999999'
naar '838:59:59.999999'
zijn beperkt tot de relevante grens en bevatten een waarschuwing.
Voorbeeld:
SELECT TIME('978:30:45');
Resultaat (met verticale uitvoer):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Laten we de waarschuwing eens bekijken:
SHOW WARNINGS;
Resultaat (met verticale uitvoer):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Huidige datum
We kunnen NOW()
doorgeven als het datetime-argument om de huidige tijd te gebruiken:
SELECT
NOW(),
TIME(NOW());
Resultaat:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, TIME()
retourneert null
met een waarschuwing:
SELECT TIME('Ten Thirty AM');
Resultaat:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Controleer de waarschuwing:
SHOW WARNINGS;
Resultaat:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Ontbrekend argument
Bellen TIME()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT TIME();
Resultaat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
En nog een voorbeeld:
SELECT TIME('10:30:45', '06:30:45');
Resultaat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1