In MariaDB, TIME() è una funzione di data e ora incorporata che estrae la parte dell'ora da una determinata espressione ora o data/ora e la restituisce come stringa.
Accetta un argomento, che è il valore di ora o data e ora per il quale desideri estrarre l'ora.
Sintassi
La sintassi è questa:
TIME(expr)
Dove expr è l'espressione di ora o data e ora per cui estrarre l'ora.
Esempio
Ecco un esempio da dimostrare:
SELECT TIME('2030-02-01 10:30:45'); Risultato:
+-----------------------------+
| TIME('2030-02-01 10:30:45') |
+-----------------------------+
| 10:30:45 |
+-----------------------------+ Valori temporali
Ecco un esempio che estrae l'ora da un valore temporale:
SELECT TIME('10:30:45'); Risultato:
+------------------+
| TIME('10:30:45') |
+------------------+
| 10:30:45 |
+------------------+ Microsecondi
Ecco un esempio che include microsecondi:
SELECT TIME('2030-02-01 10:30:45.123456'); Risultato:
+------------------------------------+
| TIME('2030-02-01 10:30:45.123456') |
+------------------------------------+
| 10:30:45.123456 |
+------------------------------------+ Orari più grandi
TIME i valori possono essere compresi nell'intervallo '-838:59:59.999999' a '838:59:59.999999' .
Pertanto, la parte dell'ora può essere molto più alta di 23 :
SELECT TIME('578:30:45'); Risultato:
+-------------------+
| TIME('578:30:45') |
+-------------------+
| 578:30:45 |
+-------------------+ Tempi negativi
I tempi negativi sono validi:
Esempio
SELECT TIME('-578:30:45'); Risultato:
+--------------------+
| TIME('-578:30:45') |
+--------------------+
| -578:30:45 |
+--------------------+ Orari fuori portata
Valori temporali al di fuori dell'intervallo '-838:59:59.999999' a '838:59:59.999999' sono limitati al confine pertinente e includono un avviso.
Esempio:
SELECT TIME('978:30:45'); Risultato (usando l'output verticale):
+-------------------+
| TIME('978:30:45') |
+-------------------+
| 838:59:59 |
+-------------------+
1 row in set, 1 warning (0.003 sec) Controlliamo l'avviso:
SHOW WARNINGS; Risultato (usando l'output verticale):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Data attuale
Possiamo passare NOW() come argomento datetime per utilizzare l'ora corrente:
SELECT
NOW(),
TIME(NOW()); Risultato:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Argomenti non validi
Quando viene passato un argomento non valido, TIME() restituisce null con un avviso:
SELECT TIME('Ten Thirty AM'); Risultato:
+-----------------------+
| TIME('Ten Thirty AM') |
+-----------------------+
| NULL |
+-----------------------+
1 row in set, 1 warning (0.002 sec) Controlla l'avviso:
SHOW WARNINGS; Risultato:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argomento mancante
Chiamando TIME() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:
SELECT TIME(); Risultato:
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
E un altro esempio:
SELECT TIME('10:30:45', '06:30:45'); Risultato:
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