Mysql
 sql >> Database >  >> RDS >> Mysql

TIME_FORMAT() Esempi – MySQL

In MySQL, puoi usare TIME_FORMAT() funzione per formattare un valore temporale.

Questa funzione funziona proprio come DATE_FORMAT() funzione, tranne per il fatto che il valore può essere formattato solo in ore, minuti, secondi e microsecondi.

Consulta la tabella in fondo a questo articolo per un elenco di identificatori di formato che possono essere utilizzati con questa funzione.

Sintassi

La sintassi è questa:

TIME_FORMAT(time,format)

Dove time è il valore dell'ora che vuoi formattare e format è la stringa di formato (questo determina come viene effettivamente formattato il valore dell'ora).

Esempio 1 – Utilizzo di base

Ecco un esempio da dimostrare.

SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';

Risultato:

+-------------+
| Result      |
+-------------+
| 02:35:27 PM |
+-------------+

Questo esempio usa il %r identificatore di formato, che formatta l'ora come 12 ore (hh:mm:ss seguito da AM o PM).

Esempio 2 – Formattazione più specifica

Se l'utilizzo di un identificatore di formato più generale come nell'esempio precedente non è adatto, sono disponibili vari altri identificatori di formato che possono aiutarti a creare il formato richiesto.

Ad esempio, se ti piace il formato precedente, ma non vuoi che vengano restituiti i secondi, puoi farlo:

SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';

Risultato:

+----------+
| Result   |
+----------+
| 02:35 PM |
+----------+

Esempio 3 – 24 ore

Ci sono anche specificatori di formato per 24 ore. Ecco il modo più semplice per formattare l'ora utilizzando 24 ore.

SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';

Risultato:

+----------+
| Result   |
+----------+
| 14:35:27 |
+----------+

Esempio 4 – Microsecondi

Ecco un esempio che include la parte dei secondi frazionari nel risultato:

SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';

Risultato:

+-----------------+
| Result          |
+-----------------+
| 14:35:27.000000 |
+-----------------+

Naturalmente, possiamo anche includere microsecondi nel valore del tempo iniziale:

SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';

Risultato:

+-----------------+
| Result          |
+-----------------+
| 14:35:27.123456 |
+-----------------+

Esempio 5 – Tempo trascorso

Il tipo di dati temporali non è limitato a 24 ore. Può anche essere usato per rappresentare il tempo trascorso. Quando si utilizza questa funzione per il tempo trascorso, è necessario essere consapevoli di come funzionano gli identificatori del formato dell'ora con valori di tempo al di fuori dell'intervallo da 0 a 23.

La documentazione MySQL afferma quanto segue:

Se il valore dell'ora contiene una parte dell'ora maggiore di 23 , il %H e %k gli specificatori di formato dell'ora producono un valore maggiore del normale intervallo di 0..23 . Gli altri specificatori del formato dell'ora producono il valore dell'ora modulo 12 .

Ecco un esempio da dimostrare:

SELECT 
    TIME_FORMAT('24:00:00', '%H %k %h %I %l') AS '24',
    TIME_FORMAT('48:00:00', '%H %k %h %I %l') AS '48',
    TIME_FORMAT('100:00:00', '%H %k %h %I %l') AS '100',
    TIME_FORMAT('500:00:00', '%H %k %h %I %l') AS '500';

Risultato:

+----------------+----------------+-----------------+-----------------+
| 24             | 48             | 100             | 500             |
+----------------+----------------+-----------------+-----------------+
| 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 |
+----------------+----------------+-----------------+-----------------+

Specificatori di formato

I seguenti specificatori possono essere utilizzati per specificare il formato di ritorno. Questi sono un sottoinsieme di quelli disponibili con DATE_FORMAT() funzione. Il valore del formato deve iniziare con un segno di percentuale (% ).

Specificatore Descrizione
%f Microsecondi (000000 ..999999 )
%H Ora (00 ..23 )
%h Ora (01 ..12 )
%I Ora (01 ..12 )
%i Minuti, numerici (00 ..59 )
%k Ora (0 ..23 )
%l Ora (1 ..12 )
%p AM o PM
%r Ora, 12 ore (hh:mm:ss seguito da AM o PM )
%S Secondi (00 ..59 )
%s Secondi (00 ..59 )
%T Ora, 24 ore (hh:mm:ss )
%% Un letterale % carattere