2012-06-21 20 views
94

Come si converte il seguente formato in unix timestamp?MySQL converte datetime in Unix timestamp

Apr 15 2012 12:00AM 

Il formato che ricevo da DB sembra avere AM alla fine. Ho provato con la seguente, ma non ha funzionato:

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

è la data memorizzati come testo nel DB? – strnk

+1

È davvero una domanda MySQL? La tua [sintassi] (http://dev.mysql.com/doc/refman//5.5/en/cast-functions.html#function_convert) non lo suggerisce. –

+1

Sembra la domanda su MSSQL. –

risposta

165

Prova questa ricerca per CONVERT DATETIME to UNIX TIME STAMP

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

questa query per 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

è questo per MSSQL? – redcoder

+5

@redcoder questo è MYSQL –

26

Lei avrà certamente utilizzare sia STR_TO_DATE per convertire la data in un formato data standard di MySQL, e UNIX_TIMESTAMP per ottenere il timestamp da esso.

Dato il formato della data, qualcosa come

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

Will ti dà un timestamp valido. Guarda la documentazione STR_TO_DATE per avere maggiori informazioni sulla stringa di formato.

10

Per data corrente basta usare UNIX_TIMESTAMP() nel vostro mysql query.

-4

Da 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

Questa risposta è per MSSQL (sebbene questa domanda abbia qualche confusione). –