2012-06-21 25 views
94

Jak przekonwertować poniższy format na znacznik czasu unix?Konwertuj datetime na MySQL na uniksowy znacznik czasowy

Apr 15 2012 12:00AM 

Format uzyskać od DB wydaje się mieć AM na końcu. Próbowałem przy użyciu następujących ale to nie działa:

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

jest data przechowywana jako tekst w DB? – strnk

+1

Czy to naprawdę pytanie MySQL? Twoja [składnia] (http://dev.mysql.com/doc/refman//5.5/en/cast-functions.html#function_convert) tego nie sugeruje. –

+1

Wygląda na pytanie o MSSQL. –

Odpowiedz

165

Spróbuj tego zapytania dla CONVERT DATETIME to UNIX TIME STAMP

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

tego zapytania dla 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

jest to dla MSSQL? – redcoder

+5

@redcoder to jest MYSQL –

26

Na pewno trzeba używać zarówno STR_TO_DATE przekonwertować datę na MySQL standardowego formatu daty, a UNIX_TIMESTAMP aby uzyskać znacznik czasu z nim.

względu na format datą, coś

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

Will daje poprawny znacznik czasu. Zajrzyj do dokumentacji STR_TO_DATE, aby uzyskać więcej informacji na temat ciągu formatu.

10

Dla aktualna data wystarczy użyć UNIX_TIMESTAMP() w mysql query.

-4

Od 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

Ta odpowiedź jest dla MSSQL (chociaż to pytanie ma pewne zamieszanie). –

Powiązane problemy