2012-05-09 143 views
2

我不是一個程序員,只是一個學習者。我正在測試一些東西。 我有一個表,即測試1有三列ID,日期,狀態。如何編寫這個SQL查詢?

我想改變這是10天老的ID的地位,併爲通過狀態或失敗或無好。

回答

0

您的要求很模糊。

這只是看通過記錄,並設置他們失敗時,他們的日期超過10天。

update test1 
set status = 'fail' 
where status = 'pass' 
and date < dateadd(d,-10, getdate()) 
2

既然您沒有指定RDBMS,我會爲MySQL和SQL Server提供一個答案。你沒有提供有關您的請求的許多細節,但你可以在MySQL做到以下幾點:

UPDATE test1 
SET status = 'good' 
where date < DATE_ADD(now(), interval -10 day) 
    AND status IN ('pass', 'fail', 'none'); 

這裏是一個sql fiddle與工作的例子。

在SQL Server查詢將是:

UPDATE test1 
SET status = 'good' 
where date < DateAdd(day, -10, getdate()) 
    AND status IN ('pass', 'fail', 'none'); 

這裏是一個sql fiddle與實例。

+0

它正在存儲日期和時間,並在結構中它是datetime哪個函數將被使用? –

+0

如果您將datetime存儲在同一個字段中,則會使用相同的函數。 – Taryn