我有数百条记录,都有一个到期日期时间列。像这样:
Name Expires Status
-----------+---------------------+--------+
Apple1 2017-05-05 10:10:15 Live
Apple2 2017-06-01 18:15:03 Live
Apple3 2017-01-01 23:59:59 Dead
Apple4 2017-01-30 23:00:01 Draft
Apple5 2017-01-30 23:00:01 Queued
我希望在到期日期时间结束后更改Live
的任何记录的状态。
到目前为止,我已经考虑过这些可能的解决方案:
onRequestStart()
方法中运行此更新脚本。 两者似乎都有点“Web 1.0”,而且可能非常昂贵。我想我正在努力做Facebook在正确的时间到来时立即发布预定的帖子所做的事情但是无法有效地做到这一点。
有人可以建议一下实现这个目标的好方法吗?
答案 0 :(得分:4)
我会使用
的视图SELECT
[Name]
,[Expires]
,CASE
WHEN GETUTCDATE() > [Expires] THEN 'Dead'
ELSE [Status]
END AS [view_Status]
FROM Table
或使用计算列作为执行相同操作的状态列。无论哪种方式,如果它已经过期,它将列为“死”,如果没有,则它将获取状态列。