Maison >base de données >tutoriel mysql >Comment convertir des chaînes de date MySQL avec des suffixes AM/PM en horodatages Unix ?
MySQL : Conversion de chaînes de date en horodatages Unix
Lors de la récupération de chaînes de date à partir d'une base de données, il n'est pas rare de rencontrer des problèmes de formatage incohérent, tels que les horodatages qui incluent les suffixes AM ou PM. Cet article montre comment convertir efficacement ces chaînes de date en horodatages Unix.
Le problème spécifique en question est la conversion de chaînes au format "15 avril 2012 00h00" en horodatages Unix. Même si la tentative initiale d'utilisation de CONVERT(DATETIME, Sales.SalesDate, 103) et CONVERT(TIMESTAMP, Sales.SalesDate, 103) n'a peut-être pas abouti, la solution réside dans les étapes suivantes :
Étape 1 : Convertir la chaîne de date en DATETIME
Pour commencer, nous devons convertir la chaîne de date en un objet DATETIME utilisant la fonction STR_TO_DATE. Cette fonction attend deux paramètres : la chaîne de date et la chaîne de format. Dans ce cas, la chaîne de format doit correspondre au format de la chaîne d'entrée ("%M %d %Y %h:%i%p").
STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')
Étape 2 : Convertir DATETIME en Unix Horodatage
Une fois que nous avons l'objet DATETIME, nous pouvons le convertir en un horodatage Unix à l'aide de la fonction UNIX_TIMESTAMP. Cette fonction prend un objet DATETIME comme argument et renvoie l'horodatage Unix correspondant.
UNIX_TIMESTAMP(SELECT STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))
En suivant ces étapes, nous pouvons convertir avec succès les chaînes de date avec les suffixes AM ou PM au format d'horodatage Unix souhaité.
Considérations de formatage supplémentaires
Si le format de sortie souhaité diffère du format par défaut Horodatage Unix, nous pouvons le traiter davantage à l'aide de la fonction FROM_UNIXTIME pour ajuster le formatage. Cette fonction prend deux arguments : l'horodatage Unix et une nouvelle chaîne de format.
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')
Ce code convertit l'horodatage Unix en une chaîne de date au format "mm-jj-aaaa hh:mm:ss".
Conclusion
En comprenant comment convertir des chaînes de date en objets DATETIME puis aux horodatages Unix, nous gagnons une plus grande flexibilité dans le travail avec les données liées aux dates dans MySQL. Les techniques décrites dans cet article fournissent une approche fiable et efficace pour résoudre les problèmes de formatage courants et extraire des informations précieuses à partir des chaînes de date.
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!