【发布时间】:2021-11-28 17:27:57
【问题描述】:
在 SQL Server 中,如何在给定条件的情况下影响属性的值,并每天检查条件?
假设在某个日期记录了订单。根据我的业务规则,应在订单日期后的 10 天内交货。
在我的 Delivery 表中,我有一个 status 属性。
在我的 Order 表中,我有一个 orderDate 属性。
我希望根据以下逻辑设置status 值:
if deliveryDate is null:
if today's date < orderDate + 10:
'in progress'
else :
'late'
else :
if deliveryDate > orderDate + 10:
'late'
else:
'on time'
我有什么办法可以做到这一点,并每天更新status 值以再次检查订单是否迟到?
【问题讨论】:
-
请阅读 S.O.指导方针。
-
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上述#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。
-
时间的流逝不会改变一列的内容。如果它是纯可视的,您可以为此目的使用视图或计算列。更改值的定期作业(提示)是另一种可能性。但我建议您考虑一个更精确的业务流程,以某种方式“提醒”那些“迟到”的交付
标签: sql sql-server date auto-update