2012-06-21 209 views
94

如何將以下格式轉換爲unix時間戳?MySQL將datetime轉換爲Unix時間戳

Apr 15 2012 12:00AM 

我從數據庫中得到的格式似乎有AM末。 我使用下面的嘗試,但沒有奏效:

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

是日期存儲爲文本數據庫? – strnk

+1

這真的是MySQL的問題嗎?你的[語法](http://dev.mysql.com/doc/refman//5.5/en/cast-functions.html#function_convert)不會提示。 –

+1

似乎是MSSQL的問題。 –

回答

165

嘗試此查詢爲CONVERT DATETIME to UNIX TIME STAMP

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

此查詢爲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

這是用於MSSQL的嗎? – redcoder

+5

@redcoder這是MYSQL –

26

你肯定要使用這兩個STR_TO_DATE您的日期轉換爲MySQL的標準日期格式,並UNIX_TIMESTAMP從它那裏得到的時間戳。

鑑於你日期的格式,像

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

威爾給你一個有效的時間戳。查看STR_TO_DATE文檔以獲取有關格式字符串的更多信息。

10

對於當前日期只是在你的mysql query使用UNIX_TIMESTAMP()

-4

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

這個答案適用於MSSQL(雖然這個問題有些混淆)。 –