In MariaDB, TIME_FORMAT() è una funzione di data e ora incorporata che formatta un valore di ora in base alla stringa di formato specificata.
Funziona in modo simile a DATE_FORMAT() funzione, tranne per il fatto che la stringa di formato può contenere solo identificatori di formato per ore, minuti e secondi.
Richiede due argomenti; l'ora e la stringa di formato.
Sintassi
La sintassi è questa:
TIME_FORMAT(time,format)
Dove time è il valore dell'ora e il format è la stringa di formato. Vedere le stringhe di formato MariaDB per un elenco di identificatori di formato accettabili. Come accennato, vengono accettati solo gli identificatori di formato per ore, minuti e secondi. Tutti gli altri valori restituiscono null .
Esempio
Ecco un esempio:
SELECT TIME_FORMAT('10:30:45', '%H %i %S'); Risultato:
+-------------------------------------+
| TIME_FORMAT('10:30:45', '%H %i %S') |
+-------------------------------------+
| 10 30 45 |
+-------------------------------------+ Eccolo di nuovo, ma questa volta forniamo una stringa di formato più elaborata:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Risultato:
+--------------------------------------+ | Result | +--------------------------------------+ | 10 hours, 30 minutes, and 45 seconds | +--------------------------------------+
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_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Risultato:
+---------------------------------------+ | Result | +---------------------------------------+ | 810 hours, 30 minutes, and 45 seconds | +---------------------------------------+
Valori temporali negativi
Ecco un esempio con un valore temporale negativo:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Risultato:
+----------------------------------------+ | Result | +----------------------------------------+ | -810 hours, 30 minutes, and 45 seconds | +----------------------------------------+
Tempi fuori portata
Tuttavia, fornire un valore temporale al di fuori dell'intervallo restituirà il limite superiore di tale intervallo, insieme a un avviso:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Risultato:
+---------------------------------------+ | Result | +---------------------------------------+ | 838 hours, 59 minutes, and 59 seconds | +---------------------------------------+ 1 row in set, 1 warning (0.003 sec)
Controlliamo l'avviso:
SHOW WARNINGS; Risultato:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '910:30:45' | +---------+------+---------------------------------------------+
Argomenti non validi
Quando vengono passati argomenti non validi, TIME_FORMAT() restituisce null con un avviso:
SELECT TIME_FORMAT('Homer', 'Simpson'); Risultato:
+---------------------------------+
| TIME_FORMAT('Homer', 'Simpson') |
+---------------------------------+
| NULL |
+---------------------------------+
1 row in set, 1 warning (0.009 sec) Controlla l'avviso:
SHOW WARNINGS; Risultato:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Stringa di formato non valida
La stringa di formato può contenere solo identificatori di formato per ore, minuti e secondi. Qualsiasi altro specificatore di formato risulta null in fase di restituzione:
SELECT TIME_FORMAT('10:30:45', '%M %W'); Risultato:
+----------------------------------+
| TIME_FORMAT('10:30:45', '%M %W') |
+----------------------------------+
| NULL |
+----------------------------------+ Argomento mancante
Chiamando TIME_FORMAT() con il numero errato di argomenti, o senza passare alcun argomento, genera un errore:
SELECT TIME_FORMAT(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'
E un altro esempio:
SELECT TIME_FORMAT('10:09:10'); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'