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