2012-06-21 34 views
94

¿Cómo convierto el siguiente formato a la marca de tiempo de Unix?MySQL convertir datetime a Unix timestamp

Apr 15 2012 12:00AM 

El formato que recibo de DB parece tener AM al final. He intentado usar el siguiente, pero no funcionó:

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

where Sales.SalesDate value is Apr 15 2012 12:00AM 
+0

es la fecha almacenada como texto en el PP? – strnk

+1

¿Es realmente una pregunta de MySQL? Su [sintaxis] (http://dev.mysql.com/doc/refman//5.5/en/cast-functions.html#function_convert) no lo sugiere. –

+1

Parece que la pregunta es sobre MSSQL. –

Respuesta

165

Intentar esta consulta para CONVERT DATETIME to UNIX TIME STAMP

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

esta consulta para 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') 
+0

es esto para MSSQL? – redcoder

+5

@redcoder esto es MYSQL –

26

Por supuesto que tendrá que utilizar tanto STR_TO_DATE para convertir la fecha a un formato de fecha estándar de MySQL, y UNIX_TIMESTAMP para obtener la fecha y hora de la misma.

Teniendo en cuenta el formato de la fecha, algo así como

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

Will le da un sello de tiempo válido. Consulte la documentación STR_TO_DATE para obtener más información sobre la cadena de formato.

10

Por fecha actual sólo tiene que utilizar UNIX_TIMESTAMP() en su mysql query.

-4

De http://www.epochconverter.com/

SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) 

My bad, SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD. More on using timestamps with MySQL: 

http://www.epochconverter.com/programming/mysql-from-unixtime.php 
+1

Esta respuesta es para MSSQL (aunque esta pregunta tiene cierta confusión). –