2012-05-09 146 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