sql优化:从设计表结构开始(SQL Server中如何让数据库中某一个字段随时间自动更新?)
2016-10-31 11:23
886 查看
今天在sql server论坛看到一个帖子:如何让数据库中某一个字段随时间自动更新?
那么如何来实现呢?
可以用触发器,那么先要写个触发器,但是可能会影响性能。
想了想,其实用sql server提供的 计算列,就可以轻松实现这个需求。
例子如下:
员工表,有字段:人员id,姓名,人员编码,人员入职时间,现在希望要增加一个字段显示工龄,就是在公司工作的时间,如 1.5年。
实现方法就是新增一个计算列:
何让数据库中某一个字段随时间自动更新
那么如何来实现呢?
可以用触发器,那么先要写个触发器,但是可能会影响性能。
想了想,其实用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;查询结果:
何让数据库中某一个字段随时间自动更新
相关文章推荐
- sql如何获得某个数据库里面的表的字段名,字段类型,字段长度(sql server)
- 数据库设计——如何利用一个整数型字段为用户打上63个标
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 如何用SQL语句,查询数据库(日期+时间字段)中等于某一天的记录
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- SQL如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间
- java中一个String型时间转换成JAVA.SQL.DATE型时间在添加到SQL Server中的datetime型字段里(
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- SQL Server 2008 如何将一个字段设置为自动增长型
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 级联更新数据库的所有表的主键(从1开始更新,关联关系会自动更新),sql
- 【数据库】SQL两表之间:根据一个表的字段更新另一个表的字段
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)
- 如何使用sql查询数据库表结构的设计(sqlserver,oracle)