我有一个有 2 列的表:
ExpireDate
(约会时间)IsExpired
(少量)。
有什么方法可以自动检查是否ExpireDate >= Today Date
并将IsExpired
列从假更改为真?
事实上,我会为每条记录发生这个过程ExpireDate
,我不想手动检查所有记录以找到什么重新编码过期然后更改IsExpired
列。
我有一个有 2 列的表:
ExpireDate
(约会时间)IsExpired
(少量)。有什么方法可以自动检查是否ExpireDate >= Today Date
并将IsExpired
列从假更改为真?
事实上,我会为每条记录发生这个过程ExpireDate
,我不想手动检查所有记录以找到什么重新编码过期然后更改IsExpired
列。
IsExpired
您可以使用如下更新查询更改字段:
UPDATE table SET IsExpired = 1 WHERE ExpireDate >= GetDate()
如果您希望它自动发生,您可以使用 SQL Server 代理安排执行此操作的作业。
如果您希望这自动发生,请使用视图或计算列。您可以像这样添加计算列:
alter table YourTable
add column isexpired as (case when ExpireDate >= getdate() then 1 else 0 end);
(您可能必须先删除该列。)
计算列的优点是它永远不会过时。
尝试以下:
update yourtablename
set isexpired = 1
where ExpireDate >= convert(date,getdate())