Lorsque vous travaillez avec MySQL, vous pouvez utiliser le TIME() fonction pour extraire la partie heure d'une valeur d'heure ou de date/heure.
La façon dont cela fonctionne est que vous transmettez l'expression heure/dateheure en tant qu'argument, et TIME() renverra la partie horaire.
Syntaxe
La syntaxe ressemble à ceci :
TIME(expr)
Où expr est l'expression heure/dateheure dont vous voulez extraire la partie heure.
Exemple de base
Voici un exemple utilisant une valeur datetime.
SELECT TIME('2021-01-03 11:15:45');
Résultat :
+-----------------------------+
| TIME('2021-01-03 11:15:45') |
+-----------------------------+
| 11:15:45 |
+-----------------------------+
Fraction de seconde
Voici un exemple où la valeur datetime contient également une fraction de seconde.
SELECT TIME('2021-01-03 11:15:45.123456');
Résultat :
+------------------------------------+
| TIME('2021-01-03 11:15:45.123456') |
+------------------------------------+
| 11:15:45.123456 |
+------------------------------------+
Omettre la partie des secondes
Voici un exemple où la partie des secondes est omise de la valeur initiale.
SELECT TIME('2021-01-03 11:15');
Résultat :
+--------------------------+
| TIME('2021-01-03 11:15') |
+--------------------------+
| 11:15:00 |
+--------------------------+
Dans ce cas, la partie des secondes est toujours renvoyée, même si elle a été omise de la valeur initiale.
Extraire l'heure d'une valeur "heure"
Comme mentionné, le premier argument peut être une valeur de temps elle-même (c'est-à-dire qu'il n'est pas nécessaire qu'il s'agisse d'une valeur datetime).
SELECT TIME('11:15');
Résultat :
+---------------+
| TIME('11:15') |
+---------------+
| 11:15:00 |
+---------------+
Réplication basée sur les instructions – Avertissement
Les documentations MySQL indiquent ce qui suit à propos de TIME() fonction :
Cette fonction n'est pas sûre pour la réplication basée sur des instructions. Un avertissement est enregistré si vous utilisez cette fonction lorsque
binlog_formatest défini surSTATEMENT.