Maison > Article > base de données > Comment convertir le temps dans MySQL
Dans MySQL, l'heure est souvent stockée dans des tableaux sous forme de chaînes, mais cela n'est pas pratique pour le calcul et la comparaison du temps. Par conséquent, il est nécessaire de convertir le type de chaîne time en un type time pour faciliter nos opérations associées. Cet article explique comment convertir le temps dans MySQL.
Dans MySQL, l'heure peut être représentée par DATETIME, TIMESTAMP, DATE, TIME et d'autres types. L'heure à laquelle ces types sont stockés dans MySQL est l'heure UTC.
Pour convertir l'heure de type chaîne en type d'heure, vous pouvez utiliser la fonction STR_TO_DATE() fournie par MySQL. La syntaxe de cette fonction est la suivante :
STR_TO_DATE(str, format)
Parmi elles, str représente la chaîne à convertir, et format représente le format de la date et de l'heure dans la chaîne. Par exemple :
SELECT STR_TO_DATE('2019-08-14 21:12:23', '%Y-%m-%d %H:%i:%s');
Cette instruction SQL renverra une heure de type DATETIME, indiquant 21:12:23 le 14 août 2019.
Lorsque vous utilisez la fonction STR_TO_DATE(), vous devez faire attention aux points suivants :
En plus de la fonction STR_TO_DATE(), vous pouvez également utiliser la fonction UNIX_TIMESTAMP() pour convertir l'heure de type chaîne en un horodatage UNIX. L'horodatage UNIX représente le nombre de secondes entre 00:00:00 le 1er janvier 1970 et l'heure actuelle. Par exemple :
SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23');
Cette instruction SQL renverra un entier représentant l'horodatage UNIX de 21:12:23 le 14 août 2019.
Étant donné que les horodatages UNIX et les types d'heure dans MySQL sont l'heure UTC, ils peuvent être comparés et calculés directement. Par exemple, vous pouvez utiliser UNIX_TIMESTAMP() pour convertir le type d'heure en horodatage UNIX, puis les soustraire pour obtenir la différence de temps entre les deux heures. Par exemple :
SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23') - UNIX_TIMESTAMP('2019-08-14 21:12:21');
Cette instruction SQL renverra un entier, représentant le décalage horaire entre 21:12:23 le 14 août 2019 et 21:12:21 le 14 août 2019, soit 2 secondes.
En plus de convertir l'heure du type chaîne en type heure, vous pouvez également utiliser la fonction DATE_FORMAT() pour convertir le type heure en type chaîne. La syntaxe de cette fonction est la suivante :
DATE_FORMAT(date, format)
Parmi eux, la date est l'heure à convertir et le format est le format de chaîne renvoyé. Par exemple :
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
Cette instruction SQL renverra la représentation sous forme de chaîne de l'heure actuelle au format "AAAA-MM-JJ HH:MI:SS".
Résumé :
Dans MySQL, l'heure est souvent stockée dans des tables sous forme de chaînes. Afin de faciliter le calcul et la comparaison du temps, le type de chaîne time doit être converti en un type de temps pour le calcul et la comparaison directs. Vous pouvez utiliser les fonctions STR_TO_DATE() et UNIX_TIMESTAMP() fournies par MySQL pour convertir l'heure du type chaîne en un type d'heure ou un horodatage UNIX, ou vous pouvez utiliser la fonction DATE_FORMAT() pour convertir le type d'heure en type chaîne. Lorsque vous utilisez des fonctions de conversion, vous devez faire attention aux spécifications d'écriture de chaîne de format et à l'utilisation du mode strict.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!