工具:sqlserver 2008 R2
公司主营业务:成都做网站、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出大理州免费做网站回馈大家。
步骤:
1、给定数据表“学生”,内容如下:
2、现在要将性别为女的年龄增加一岁,使用如下语句:
update 学生 set 年龄=年龄+1 where 性别='女'
3、执行后结果如下,可以看出姓名为“二果”的女生,年龄由原来的19岁增加了1岁,其他两位同学的年龄没有改变。
SqlServer中通过出生日期计算年龄可用year函数。
工具:SqlServer 2008 R2
步骤:
1、有student表,数据如下,其中birthday列为生日列:
2、要计算每个人的年龄,可用如下语句:
select *,year(getdate())-year(birthday) age from student
3、查询结果如下,年龄计算结果出现:
我用的是SQL SERVER 分析问题
你的需求要用存储过程的话 方法如下:
把你录入的出生日期作为你的存储过程参数,当然你的存储过程还需要一个表示身份的字段 我假设为ID
create proc ageA (@id int,@birth datetime)
as
begin
update p_info
set year=datediff(year,@Birth,getdate())
where id=@id
end
--但是如果你想全自动完成
就是说 你想往表里插入你的出生日期字段值后 表中的year字段自己算出来的话 有2个方法
1.计算列
CREATE TABLE p_info
(
id INT PRIMARY KEY ,
name VARCHAR(10),
birth DATETIME,
year AS datediff(year,birth,getdate())
)
这么建表就好了
2.触发器
CREATE TRIGGER trIns ON p_info
AFTER INSERT
AS
BEGIN
UPDATE p_info
SET year=datediff(year,d.birth,getdate())
FROM inserted d
WHERE p_info.id=d.id
end
个人强烈介意使用第一种计算列
SqlServer中通过出生日期计算年龄可用year函数。步骤如下:有student表,数据如下,其中birthday列为生日列。
、要计算每个人的年龄,可用如下语句:
查询结果如下,年龄计算结果出现:
美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
主要特点是高性能设计,可充分利用WindowsNT的优势。
系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
强大的事务处理功能,采用各种方法保证数据的完整性。
支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
首先呢根据题目来看实在数据库实现的时候没有考虑全面。在设计阶段可以只有出生日期,但应该能分析到年龄是经常使用的,必须将年龄设计成派生属性,在关系的实现时将其作为表的一个列age,并为其设置默认值year(getdate())-year(出生日期),这样在查询的时候直接查选age即可。建议修改表结构,一劳永逸。其次,如果不修改表结构,也只能使用sql中的日期函数,比如datediff。在这给出sqlserver中的写法:
select DATEDIFF(yy, GETDATE(), 出生日期) as 'age' from table_name
还有一种办法,就是在应用编程中操作,利用脚本语言进行处理。
(1)假设你没有生日这一列alter table add birthday datetime
假设你没有年龄这一列alter table add age float
(2)给某人加入生日1990-1-1,update table set birthday ='1990-1-1' where ....
计算年龄 update table set age =datediff(year,birthday,getdate()) where ....
以上代码sqlserver2008