1

我有一个有 2 列的表:

  1. ExpireDate(约会时间)
  2. IsExpired(少量)。

有什么方法可以自动检查是否ExpireDate >= Today Date并将IsExpired列从假更改为真?

事实上,我会为每条记录发生这个过程ExpireDate,我不想手动检查所有记录以找到什么重新编码过期然后更改IsExpired列。

4

3 回答 3

3

IsExpired您可以使用如下更新查询更改字段:

UPDATE table SET IsExpired = 1 WHERE ExpireDate >= GetDate()

如果您希望它自动发生,您可以使用 SQL Server 代理安排执行此操作的作业。

于 2013-07-07T08:49:56.307 回答
1

如果您希望这自动发生,请使用视图或计算列。您可以像这样添加计算列:

alter table YourTable
   add column isexpired as (case when ExpireDate >= getdate() then 1 else 0 end);

(您可能必须先删除该列。)

计算列的优点是它永远不会过时。

于 2013-07-07T11:54:12.497 回答
1

尝试以下:

update yourtablename
set isexpired = 1
where ExpireDate >= convert(date,getdate())
于 2013-07-07T08:49:08.503 回答