Existe-t-il un moyen de convertir une chaîne en horodatage UNIX dans MySQL?
Par exemple, j'ai une chaîne 2011-12-21 02:20pm
qui doit être au format d'horodatage unix.
UNIX_TIMESTAMP()
fait l'affaire:
SELECT UNIX_TIMESTAMP('2011-12-21 14:20:00');
Cependant, la fonction UNIX_TIMESTAMP()
ne prend qu'une date standard au format MySQL. Si vous souhaitez utiliser la notation AM/PM, vous devrez d'abord utiliser STR_TO_DATE
comme ceci:
SELECT UNIX_TIMESTAMP(
STR_TO_DATE('2011-12-21 02:20pm', '%Y-%m-%d %h:%i%p')
);
Bien que @ a'r ait déjà donné la bonne réponse, je voudrais ajouter quelque chose ici: les deux paramètres STR_TO_DATE () fonction, format 'date string' et chaîne 'date format', devraient ont le placement correspondant de "-" et ":".
Par exemple, les 4 requêtes suivantes renvoient exactement le même résultat 28/05/2014 11:30:10
SELECT STR_TO_DATE('2014-05-28 11:30:10','%Y-%m-%d %H:%i:%s');
SELECT STR_TO_DATE('20140528 11:30:10','%Y%m%d %H:%i:%s');
SELECT STR_TO_DATE('2014-05-28 113010','%Y-%m-%d %H%i%s') ;
SELECT STR_TO_DATE('20140528 113010','%Y%m%d %H%i%s');
Remarque: les 2 paramètres de la fonction STR_TO_DATE () dans chaque requête ont un placement correspondant pour '-' et ':'