我有一个表Loan
,其中包含LoanDate
,ReturnDate
和Expired
等列。前两个是日期时间,而后一个时间。
如果getutcdate()
超过ReturnDate
值,Expired
列自动更新为1,该怎么办?
答案 0 :(得分:2)
如果我正确理解,您希望当当前日期超过Expired
时,1
列会自动变为ReturnDate
。
在这种情况下,您可以为Expired
使用computed column:
create table Loan (
LoanDate datetime null,
ReturnDate datetime null,
Expired as cast(case when getutcdate()>ReturnDate then 1 else 0 end as bit)
)
这对于使用像这样的同一行中的数据的简单计算非常有用。
请注意,计算列为“只读”,然后从INSERT
和UPDATE
语句中忽略:
insert into Loan (LoanDate, ReturnDate) values
('20010101','20011231'),
('20210101','20211231')