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_format
est défini surSTATEMENT
.