我的员工数据在我的数据库中,如果我插入员工数据,它将自动计算我在存储过程中写的年龄,但如果员工的出生日期可能是明天,如果我检索员工的详细信息将是自动显示更新的
Declare @age float
set @age=(select DATEDIFF(YYYY,@DATE_OF_BIRTH,
GETDATE())) update Employee_details set AGE=@AGE where
BADGE_NO=@BADGE_NO
答案 0 :(得分:3)
使用SQL Server,如果存储出生日期,则可以将年龄添加为计算列:
CREATE TABLE employees (id INT, name VARCHAR(25), dob DATE,
age AS (CONVERT(INT,CONVERT(CHAR(8),GETDATE(),112))-CONVERT(CHAR(8),dob,112))/10000)
INSERT INTO employees (id, name, dob) VALUES (1, 'Max Smith', '12/31/1983')
INSERT INTO employees (id, name, dob) VALUES (1, 'Scott Smith', '2/8/1982')
INSERT INTO employees (id, name, dob) VALUES (1, 'Carolyn Smith', '11/1/1985')
请注意年龄栏声明 - 并感谢cars10m提供此计算! - 根据出生日期栏和当前日期准确地给出年龄:
age AS (CONVERT(INT,CONVERT(CHAR(8),GETDATE(),112))-CONVERT(CHAR(8),dob,112))/10000)
从员工中选择*给你(截至今天,2017年8月9日):
id name dob age
1 Max Smith 1983-12-31 33
1 Scott Smith 1982-02-08 35
1 Carolyn Smith 1985-11-01 31
使用计算列!