Maison >base de données >tutoriel mysql >Comment effectuer une conversion de temps dans MySQL
MySQL prend en charge différents types d'expressions temporelles telles que DATETIME, TIMESTAMP, DATE et TIME. L'heure à laquelle ces types sont stockés dans MySQL est l'heure UTC.
Utilisez la fonction STR_TO_DATE() dans MySQL pour convertir une chaîne d'heure en un type d'heure. 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 :
Dans la chaîne de format, le cas des identifiants (par exemple, Y, m, d, H, i, s, etc. .) est différent de. 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.
Le délimiteur utilisé dans la chaîne de format doit être le même que le délimiteur utilisé dans la chaîne réelle. Si "-" est utilisé comme séparateur de date dans la chaîne réelle, la chaîne de format doit également utiliser "-" comme séparateur.
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é, NULL ; sera restitué.
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. Un horodatage UNIX est un nombre entier qui représente le nombre de secondes écoulées depuis 00:00:00 le 1er janvier 1970, qui est 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 types d'heure dans l'horodatage UNIX et MySQL sont basés sur 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".
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!