加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库中通过日期计算年龄的SQL语句是啥

发布时间:2023-05-13 10:59:06 所属栏目:MsSql教程 来源:
导读:在这篇文章中,我们来学习一下“数据库中通过日期计算年龄的SQL语句是什么”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。

在这篇文章中,我们来学习一下“数据库中通过日期计算年龄的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

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章