sql触发器能否以系统时间变化来作为触发条件

sanyuan35 2017-09-07 11:03:47
sql触发器能否以系统时间变化来作为触发条件。主要是一个问题,某表里面,存在一时间字段,需要与当前系统时间进行比较,如果当前日期与表内日期已过了一个星期,修改表中“等级”字段。
...全文
1844 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2017-09-07
  • 打赏
  • 举报
回复
根本不需要什么触发器, 也不需要定时任务, 加一个计算列就可以了。 下面是根据生日自动计算年龄的, 与你的问题类似。
USE tempdb
GO
--测试数据
if not object_id(N'T') is null
    drop table T
Go
CREATE TABLE T(
	birthday DATETIME,
	age AS DATEDIFF(YEAR,birthday,GETDATE()) --计算列
)
GO
INSERT INTO t(birthday) VALUES('1990-01-01')

--你可以试着修改你本机的时间,比如改为2018 年, 这里执行就自动变成 28 岁了
SELECT * FROM t
/*
birthday	age
1990-01-01 	27
*/
二月十六 2017-09-07
  • 打赏
  • 举报
回复
需要精确到秒吗?还是天就可以,如果是天的话,可以给数据库建一个作业,然后每天凌晨执行对比,然后更新数据。 如果精确到秒,可以给程序里加一个时间控件,然后在生成数据的时候,就一个一星期之后执行的timer。
OwenZeng_DBA 2017-09-07
  • 打赏
  • 举报
回复
引用 楼主 sanyuan35 的回复:
sql触发器能否以系统时间变化来作为触发条件。主要是一个问题,某表里面,存在一时间字段,需要与当前系统时间进行比较,如果当前日期与表内日期已过了一个星期,修改表中“等级”字段。
表内有几个日期?也可以在触发器里面写好逻辑,每次插入数据的时候进行对比
zbdzjx 2017-09-07
  • 打赏
  • 举报
回复
可以用使用SQL Server作业设置定时任务,每隔一段时间执行一次。

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧