例如,我有一个表tb
,其中包含以下列:
order_id | date_ordered | due_date | status
是否有开箱即用的解决方案,当当前时间(来自服务器)达到 due_date
列的值时,我可以自动更新 status
列?我该怎么做?
提前致谢。
更新:
像这样:
test1 | 2016-03-30 09:19:06.610 | 2016-03-30 11:19:06.610 | NEW
test2 | 2016-03-30 09:22:43.513 | 2016-03-30 11:22:43.513 | NEW
test3 | 2016-03-30 09:06:03.627 | 2016-03-30 11:06:03.627 | NEW
当服务器时间到达 2016-03-30 11:19:06.610
时,test1
的状态会改变值,比如 overdue
最佳答案
这取决于您所说的“开箱即用的解决方案”是什么意思。您可以创建一个 sql server 代理作业,它每分钟检查一次 due_date 值是否小于或等于当前日期和时间,并更改状态列。
计算列可能是另一种更简单的解决方案。
像这样的表格可能就足够了:
CREATE TABLE tb_test (
order_id INT PRIMARY KEY,
date_ordered DATETIME,
due_date DATETIME,
[status] as
CASE WHEN due_date <= GETDATE() THEN 'overdue'
ELSE 'new' END
);
关于sql-server - SQL Server 中值的自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303923/