MSSQL 计算年龄函数

/*
     计算年龄函数
*/
CREATE FUNCTION DBO.GETAGE
(
	@BIRTHDAY DATETIME,
	@NOWDAY DATETIME
)
RETURNS INT
AS
BEGIN
DECLARE @AGE INT, @YEAR INT, @MONTH INT, @DAY INT
SET @AGE = 0
SET @YEAR = 0
SET @MONTH = 0
SET @DAY = 0
SET @YEAR = DATEPART(YEAR,@NOWDAY) - DATEPART(YEAR, @BIRTHDAY)
SET @MONTH = DATEPART(MONTH,@NOWDAY) - DATEPART(MONTH, @BIRTHDAY)
SET @DAY = DATEPART(DAY,@NOWDAY) - DATEPART(DAY, @BIRTHDAY)
IF( @MONTH > 0)
SET @AGE = @YEAR
IF( @MONTH < 0)
SET @AGE = @YEAR - 1
IF(@MONTH = 0)
BEGIN
IF( @DAY >= 0)
SET @AGE = @YEAR
ELSE
SET @AGE = @YEAR -1
END
RETURN(@AGE)
END

 最近找到另一种更好的方法:

SELECT FLOOR(DATEDIFF(DAY,@BRITHDAY,GETDATE())/365.25)

转载于:https://www.cnblogs.com/rainrcn/archive/2013/01/17/2864095.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值