Select DATEDIFF(YEAR,[出生日期],[入司日期]);
mysql数据库获取年龄:TIMESTAMPDIFF(YEAR, [出生日期字段], CURDATE())
select * from (select name 姓名,TIMESTAMPDIFF(YEAR, [出生日期字段], CURDATE()) 年龄 from [表名] )a;
sqlserver数据...
SQL Server 计算年龄函数需要处理的问题实现思路先将int类型转换成datetime创建sqlserver函数创建视图
需要处理的问题
在实际开发过程中,我们经常会遇到动态计算人员年龄的情况,其实如果单纯的计算年龄,其实在应用程序或者sql语句里面处理一下就好了,但是如果需要根据年龄进行筛选并且数据要求分页,这个问题就变的复杂起来,为了已最快的速度解决这个问题,我们就采用创建数据库函数的方式,并且结合表我们和函数结合创建视图,来快速解决相应的需求,解决方案有很多,也许我这种不是性能最优的,我只介绍快
在Sqlserver中,可以根据存储的出生年月字段计算出该用户的当前年龄信息,主要使用到DateDiff函数来实现。DateDiff函数的格式为DATEDIFF(datepart,startdate,enddate),两个表达式中的参数datepart表示单位计量,startdate表示开始时间,enddate表示结束时间。
datepart参数可以是下列的值:
datepart缩写
id int identity(1,1) PRIMARY key ,
name nvarchar(50) not null,
birthday datetime not null DEFAULT('2010-10-01')
2.当前日期是2020-04-24,往表中插入三条数据
INSERT into birthday_test VALUES ('张三','2010-04-23')
但是在SqlServer中,计算年份日期差是直接按照年份数值相减,而不会考虑是否足月;计算月份差也是直接年份加月份相减,也不会考虑日期是否不足,所以上面两个日期在SqlServer中计算结果会不一样。Excel中的datedif函数,计算精度到日,不足日的月份差额要减一,不足月的年份差额要减一,例如。
CREATE FUNCTION [fun_lx_age](@birthday VARCHAR(10),
@nowday VARCHAR(10))
RETURNS VARCHAR(20)
BEGIN
DECLARE @year INT,
@month INT,
@day INT
<思路>在SQL中,一般可以使用year函数来计算已知出生日期求年龄的问题
SELECT sid,sname, ssex,sage, year(getdate())-year(sage) as age
from student;
SELECT sid,sname, ssex,sage, year(getdate())-year(sage) as age
from student;