web-dev-qa-db-fra.com

MySQL convertit la chaîne de date en horodatage Unix

Comment convertir le format suivant en timestamp Unix?

Apr 15 2012 12:00AM

Le format que je reçois de DB semble avoir AM à la fin. J'ai essayé d'utiliser les éléments suivants, mais cela n'a pas fonctionné:

CONVERT(DATETIME, Sales.SalesDate, 103) AS DTSALESDATE,  
CONVERT(TIMESTAMP, Sales.SalesDate, 103) AS TSSALESDATE

where Sales.SalesDate value is Apr 15 2012 12:00AM
127
redcoder

Essayez cette requête pour CONVERT DATETIME to UNIX TIME STAMP

SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

Cette requête pour CHANGE DATE FORMATE

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')
209
Query Master

Vous devrez certainement utiliser les deux STR_TO_DATE pour convertir votre date au format de date standard MySQL, et UNIX_TIMESTAMP pour en obtenir l’horodatage.

Étant donné le format de votre date, quelque chose comme

_UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p'))
_

Will vous donne un horodatage valide. Consultez la documentation STR_TO_DATE pour avoir plus d'informations sur la chaîne de formatage.

34
strnk

Pour la date actuelle, utilisez simplement UNIX_TIMESTAMP() dans votre requête MySQL.

11
stackMonk