2012-10-12 47 views

回答

1

看看在TimeStamp領域,特別是你可以創建表本身來完成所有的工作,爲您提供:

CREATE TABLE `table` (
    `id` INT PRIMARY KEY AUTO_INCREMENT, 
    `updatetime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
) 

這裏,當創建記錄(即INSERT)將數據庫爲您填充字段內容。

您可以使用DATE_DIFF()TIME_DIFF函數運行一個簡單的查詢來檢查是否有大於72小時的記錄。請注意,您也可以在這裏使用UNIX_TIMESTAMP()功能。

欲瞭解更多信息,查看here

+0

好的,謝謝。從那時起,我需要做些什麼來檢查是否已經過了72小時? – KriiV

+0

你走了,看看我的編輯:) – Simon

+0

你可以使用DATE_DIFF()或UNIX_TIMESTAMP()來運行一個簡單的查詢,但性能會很糟糕。 – symcbean

1

如果您將CURRENT_TIMESTAMP列的默認值定義爲datetime屬性,則不需要指定顯式值。如果將類型定義爲TIMESTAMP,則每次修改記錄時都會將其更新爲當前時間,除非您專門覆蓋該行爲。

如果72小時過去了,是否可以計算出來?

是 - 但要確保你把比較操作的一側全部靜態計算:

SELECT * 
FROM yourtable 
WHERE NOW() - INTERVAL 72 HOURS > yourtable.created_time; 

將比....

SELECT * 
FROM yourtable 
WHERE NOW()> yourtable.created_time + INTERVAL 72 HOURS; 

更快速的無創建時間索引。如果您在創建的時間上有索引,那麼第一個查詢將不會使用它,但第二個查詢會快得多。