Maison  >  Article  >  base de données  >  Comment convertir le temps dans MySQL

Comment convertir le temps dans MySQL

PHPz
PHPzoriginal
2023-04-20 10:10:074263parcourir

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 :

  1. Cas de l'identifiant : Le cas des identifiants (tels que Y, m, d, H, i, s, etc.) dans le La chaîne de format est Il y a une différence. Les majuscules signifient une correspondance stricte, les minuscules signifient une correspondance lâche. Par exemple, %m représente le mois numérique, qui peut accepter des formats tels que 01 et 1 ; et %M représente le mois anglais, qui nécessite une correspondance exacte.
  2. Délimiteur : le délimiteur utilisé dans la chaîne de format doit être cohérent avec le délimiteur utilisé dans la chaîne réelle. Par exemple, si « - » est utilisé comme séparateur de date dans la chaîne réelle, alors « - » doit également être utilisé comme séparateur dans la chaîne de format.
  3. Mode strict : lorsque la chaîne de format ne peut pas correspondre à la chaîne réelle, si le mode strict est utilisé (par exemple en définissant sql_mode sur STRICT_ALL_TABLES dans le fichier de configuration MySQL), une erreur sera renvoyée si le mode strict n'est pas utilisé, une erreur sera renvoyée ; être renvoyé Renvoie NULL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn