2011-10-14 52 views
19

我有一個日期字段的表,其中有人的日期,如:'2008-01-08 19:23:32' 現在我必須複製此字段加上同一個表的一些其他字段到另一個表,但日期需要在unix時間戳。如何將人類日期轉換爲Mysql中的unix時間戳?

在mysql中有什麼函數將人類日期轉換爲查詢本身內部的unix時間戳嗎?

+2

剛一說明,如果存儲在表中的日期是不是在UTC,那麼你可能必須先將其轉換爲UTC時區,然後調用UNIX_TIMESTAMP()。我不確定'unix_timestamp()'在計算時間戳之前是否自動將日期時間轉換爲UTC。 –

+0

只是一個註釋..這是一個'datetime'字段類型,而不是'date'字段類型。它們是有區別的。 – DevlshOne

回答

42
mysql> select unix_timestamp('2008-01-08 19:23:32'); 
+---------------------------------------+ 
| unix_timestamp('2008-01-08 19:23:32') | 
+---------------------------------------+ 
|       1199849012 | 
+---------------------------------------+ 
1 row in set (0.04 sec) 

這裏找到:http://www.epochconverter.com/

4

UNIX_TIMESTAMP()應該訣竅!

從MySQL文檔:

如果被叫不帶參數,返回一個Unix時間戳(秒因爲 '1970-01-01 00:00:00' UTC)作爲無符號整數。如果使用日期參數調用UNIX_TIMESTAMP() ,則它會返回參數 的值,因爲UTC自1970-01-01 00:00:00之後的秒數。日期可以是DATE字符串, DATETIME字符串,TIMESTAMP或格式爲YYMMDD或 YYYYMMDD的數字。服務器將日期解釋爲當前時間 區域中的值,並將其轉換爲UTC的內部值。

mysql> SELECT UNIX_TIMESTAMP(); 
     -> 1196440210 
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
     -> 1196440219 
0

是。 SELECT UNIX_TIMESTAMP(列)FROM表

3
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
相關問題