sql优化:从设计表结构开始(SQL Server中如何让数据库中某一个字段随时间自动更新?)

今天在sql server论坛看到一个帖子:如何让数据库中某一个字段随时间自动更新?

那么如何来实现呢?

可以用触发器,那么先要写个触发器,但是可能会影响性能。

想了想,其实用sql server提供的 计算列,就可以轻松实现这个需求。


例子如下:

员工表,有字段:人员id,姓名,人员编码,人员入职时间,现在希望要增加一个字段显示工龄,就是在公司工作的时间,如 1.5年。

if object_id('emp') is not null
   drop table emp
go


CREATE TABLE emp
    (
      emp_id INT PRIMARY KEY , 
      emp_name NVARCHAR(10) not null,
      emp_code VARCHAR(20) not null,
      hire_date DATE not null
    );
go


INSERT  INTO emp
VALUES  ( 1, N'张三', '0000000100', '2015-01-01' );

实现方法就是新增一个计算列:

alter table emp
add employment_time as cast(datediff(month,hire_date,GETDATE())*1.0/12 as numeric(8,1));

select  * from emp;
查询结果:


何让数据库中某一个字段随时间自动更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值