2013-08-06 40 views
20

我曾嘗試使用以下兩種方法來插入日期和時間格式字符串到MySQL時間戳字段但都表明了我0000-00-00 00:00:00如何將自定義日期插入到mysql時間戳字段?

INSERT INTO test VALUES (UNIX_TIMESTAMP('2013-08-05 18:19:03')) 
INSERT INTO test VALUES (UNIX_TIMESTAMP(STR_TO_DATE('2013-08-05 18:19:03', '%Y-%m-%d %H:%i:%s'))) 

我認爲第一個應該是我的工作我期待但不知道爲什麼不分析日期和時間?

+0

您的'UNIX_TIMESTAMP'用法沒有什麼問題,正如您在mysql下執行'SELECT <您的unix timestamp stuff>'所看到的一樣。你的桌子是否有多列?或者,列的數據類型可能不是int(因爲這是'UNIX_TIMESTAMP'返回的內容)? – GreatBigBore

+0

嘗試在MySQL中輸入你的INSERT語句,看看它是如何響應的。 – GreatBigBore

+0

@GreatBigBore我的領域是時間戳,它不是一個日期和時間列,只有一列 – Maximus

回答

24

問題是你的字段被定義爲TIMESTAMP,但是UNIX_TIMESTAMP返回一個int。改爲使用INSERT INTO test VALUES ('2013-08-05 18:19:03')

+0

工作!謝謝。我想知道爲什麼strtotime PHP函數工作正常,但不是UNIX_TIMESTAMP在MySQL查詢?當我在日期函數中傳遞unix_timestamp值時,它會顯示我43年的返回日期。 – Maximus

+0

這可能是因爲您正在使用的PHP函數期望得到的不是由'UNIX_TIMESTAMP'返回的int。仔細檢查文檔,你可能會發現問題。 – GreatBigBore

相關問題