I MariaDB, TIME()
är en inbyggd datum- och tidsfunktion som extraherar tidsdelen från ett givet uttryck för tid eller datum och returnerar det som en sträng.
Den accepterar ett argument, vilket är det tid- eller datetime-värde som du vill extrahera tiden för.
Syntax
Syntaxen ser ut så här:
TIME(expr)
Där expr
är det tid- eller datetime-uttryck som tiden ska extraheras för.
Exempel
Här är ett exempel att visa:
SELECT TIME('2030-02-01 10:30:45');
Resultat:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Tidsvärden
Här är ett exempel som extraherar tiden från ett tidsvärde:
SELECT TIME('10:30:45');
Resultat:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Mikrosekunder
Här är ett exempel som inkluderar mikrosekunder:
SELECT TIME('2030-02-01 10:30:45.123456');
Resultat:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
Större timmar
TIME
värden kan ligga inom intervallet '-838:59:59.999999'
till '838:59:59.999999'
.
Därför kan timdelen vara mycket högre än 23
:
SELECT TIME('578:30:45');
Resultat:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Negativa tider
Negativa tider är giltiga:
Exempel
SELECT TIME('-578:30:45');
Resultat:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
Timmar utanför intervallet
Tidsvärden utanför intervallet '-838:59:59.999999'
till '838:59:59.999999'
är begränsade vid den relevanta gränsen och inkluderar en varning.
Exempel:
SELECT TIME('978:30:45');
Resultat (med vertikal utdata):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Låt oss kolla varningen:
SHOW WARNINGS;
Resultat (med vertikal utdata):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Aktuellt datum
Vi kan skicka NOW()
som datetime-argument för att använda den aktuella tiden:
SELECT
NOW(),
TIME(NOW());
Resultat:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Ogiltiga argument
När ett ogiltigt argument skickades, TIME()
returnerar null
med en varning:
SELECT TIME('Ten Thirty AM');
Resultat:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Kontrollera varningen:
SHOW WARNINGS;
Resultat:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argument saknas
Anropar TIME()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT TIME();
Resultat:
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
Och ett annat exempel:
SELECT TIME('10:30:45', '06:30:45');
Resultat:
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