如何每天自动更新日差列?

cig3rfwq  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(378)

我正在管理一个包含许多列的数据库表,其中两列如下:
上次电子邮件发送日期(datetime)
自上次发送电子邮件以来的天数(int)
在第二列中,保存第1列与当前日期的日期差。问题是,我必须通过sql作业每天更新第2列,因为天数差异每天都会发生变化。有没有其他技术可以让日差自动更新而不运行作业?
我试图创建计算列,但它不允许使用非确定性函数(getdate())。
我知道这不是一个很好的方法来保存日期值以及日差。实际上,在我的案例中,表是在第三方工具中使用的,我需要这两个列。

vql8enpb

vql8enpb1#

不能使用创建持久化计算列 GETDATE() . 您可以创建在查询执行时计算的普通计算列。
msdn上的计算列

create table #test(Last_Email_Send_Date date)

alter table #test add Days_Since_Last_Email_Send as (datediff(day,Last_Email_Send_Date,getdate()))

insert into #TEST values('2020-01-01')

select * from #test
+----------------------+----------------------------+
| Last_Email_Send_Date | Days_Since_Last_Email_Send |
+----------------------+----------------------------+
| 2020-01-01           |                        190 |
+----------------------+----------------------------+

相关问题