2011-10-08 31 views
0

我有這個表叫test與一個字段叫timesMySQL,如何使用帶時間戳的減法?

和我插入時間到是在UNIX時間戳格式:1318055933

的話,我希望做一個更新,其中(當前時間 - 時間)> 600

UPDATE test SET times= 0 WHERE (UNIX_TIMESTAMP() - times> 600); 

這個查詢沒有按」 t似乎工作,

任何想法我做錯了什麼?

感謝

+0

什麼字段類型是'times'?如果它是日期時間類型,則必須計算不同的值,實際上它會更容易,如果更頻繁地使用日期時間函數,則會更有意義。 – Anonymous

回答

1

嘗試鑄造UNIX_TIMESTAMP()函數符號整數。

UPDATE test SET times= 0 WHERE (CAST(UNIX_TIMESTAMP() AS SIGNED) - times> 600); 

我在MySQL manual找到了這個。根據times列的數據類型,您可能也必須投射該數據。

如果您想要減去UNIX_TIMESTAMP()列,您可能希望將結果轉換爲帶符號整數。請參見第11.10節「演員功能和操作員」。