sql通过日期判断年龄函数的示例代码
更新时间:2021年07月15日 16:12:19 作者:kueizheng
这篇文章主要介绍了sql通过日期判断年龄函数,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
定义函数:
CREATE FUNCTION [dbo].[GetAge] ( @BirthDay nvarchar(20) --生日 ) RETURNS varchar(20) AS BEGIN if(@BirthDay is NUlL or @BirthDay='') return ''; -- Declare the return variable here DECLARE @age varchar(20) DECLARE @years int DECLARE @months int DECLARE @days int -- Add the T-SQL statements to compute the return value here set @age = '' set @years = year(GETDATE()) - year(@birthday) set @months = month(GETDATE()) - month(@birthday) if day(@birthday)<=day(GETDATE()) set @days = day(GETDATE()) - day(@birthday) else begin set @months = @months - 1 if MONTH(@birthday) in (1,3,5,7,8,10,12) set @days = 31-day(@birthday)+day(GETDATE()) else if MONTH(@birthday) in (4,6,9,11) set @days = 30-day(@birthday)+day(GETDATE()) else if MONTH(@birthday) = 2 if (year(@birthday)%4 = 0 and year(@birthday)%100 <> 0) or year(@birthday)%400 = 0 set @days = 29-day(@birthday)+day(GETDATE()) else set @days = 28-day(@birthday)+day(GETDATE()) end if @months < 0 begin set @years = @years - 1 set @months = @months + 12 end if @years = 0 and @months = 0 begin return convert(varchar,@days+1) + '天' end if @years > 0 set @age = cast(@years as varchar(5)) + '岁' if @years < 3 and @months > 0 and @years>-1 begin set @age = @age + cast(@months as varchar(5)) + '月' end if @years<0 set @age='' RETURN @age END
使用函数:
到此这篇关于sql通过日期判断年龄函数的示例代码的文章就介绍到这了,更多相关sql日期计算年龄内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SQL Server误区30日谈 第26天 SQL Server中存在真正的“事务嵌套”
嵌套事务可不会像其语法表现的那样看起来允许事务嵌套。我真不知道为什么有人会这样写代码,我唯一能够想到的就是某个哥们对SQL Server社区嗤之以鼻然后写了这样的代码说:“玩玩你们”2013-01-01SQL Server误区30日谈 第29天 有关堆碎片的误区
对堆建聚集索引再DROP在我看来是除了收缩数据库之外最2的事了2013-01-01如何通过sysprocesses 简单查询死锁及解决死锁最新方案(四步解决)
这篇文章主要介绍了如何通过sysprocesses 简单查询死锁及解决死锁最新方案,本文分四步帮助大家成功解决,需要的朋友可以参考下2024-02-02SQL中Group分组获取Top N方法实现可首选row_number
统计每个城市的最新10个产品本文采用了游标方法/Count查询/cross apply方法/row_number方法等等对比不难发现Group获取Top N场景时,可以首选row_number,游标cursor其次,另外两个就基本不考虑了2013-03-03
最新评论