2011-03-27 223 views
1

我需要自動更新PHP時間戳列的類型,每當某些更新完成其特定的某一行。可以做到嗎?mysql時間戳查詢

時間戳的格式爲「0000-00-00 00:00:00」

我也想比較列已經設置的值當前(系統)日期和時間。例如,我想比較當前系統時間戳和DB值,如果當前值比DB值超過10分鐘,請執行特定操作。我如何檢查這個?

回答

4

最簡單的方法是設置on update CURRENT_TIMESTAMP在數據庫的行(假設你正在使用MySQL)。另一種方法是在插入時插入值NOW()

當您查詢數據庫時,而不是隻寫SELECT timestamp FROM...SELECT UNIX_TIMESTAMP(timestamp) as stamp FROM...。這將使您將它作爲UNIX時間戳。然後,您可以將其與time()中的值進行比較,並檢查它是否距離數據庫時間戳超過600秒。

0

MySQL函數NOW()將始終爲您提供當前的timnestamp。

這將modified字段設置爲當前時間戳:

UPDATE user SET realname='John Smith', modified=NOW() 

或者這會給你在最後10分鐘修改的記錄。

SELECT * FROM user WHERE modified > TIMESTAMPADD(MINUTE, -10, NOW()) 
+0

這個答案的Peoblem是什麼? – vbence 2011-03-27 22:18:33

-1

A '時間戳列' 是不是PHP。這是MySQL的。默認情況下,MySQL會在記錄更改或插入時自動更新任何給定表中的第一個時間戳列。

選擇基於該時間戳,你會做

SELECT field,field,field 
FROM yourtable 
WHERE (timestampfield, DATE_SUB(now(), INTERVAL 10 MINUTE) 
0
`updated` TIMESTAMP DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,