根据日期返回星座

来源:互联网 发布:天马网络分销平台 编辑:程序博客网 时间:2024/04/29 22:05

go

--创建函数(CSDN fredrickhu(F)提供)

create function udf_GetStar (datetime)

RETURNS varchar(100)

-- 返回日期所属星座

BEGIN

    RETURN

    (

    select max(star)

    from

    (

    select '魔羯座' as star,as [month],as [day]

    union all select '水瓶座',1,20

    union all select '双鱼座',2,19

    union all select '牡羊座',3,21

    union all select '金牛座',4,20

    union all select '双子座',5,21

    union all select '巨蟹座',6,22

    union all select '狮子座',7,23

    union all select '处女座',8,23

    union all select '天秤座',9,23

    union all select '天蝎座',10,24

    union all select '射手座',11,22

    union all select '魔羯座',12,22

    ) stars

    where dateadd(month,[month] - 1,dateadd(year,year(@) - year(0),0)) + [day] - 1 =

    (

    select max(dateadd(month,[month] - 1,dateadd(year,year(@) - year(0),0)) + [day] - 1)

    from (

    select '魔羯座' as star,as [month],as [day]

    union all select '水瓶座',1,20

    union all select '双鱼座',2,19

    union all select '牡羊座',3,21

    union all select '金牛座',4,20

    union all select '双子座',5,21

    union all select '巨蟹座',6,22

    union all select '狮子座',7,23

    union all select '处女座',8,23

    union all select '天秤座',9,23

    union all select '天蝎座',10,24

    union all select '射手座',11,22

    union all select '魔羯座',12,22

    ) stars

    where @ >= dateadd(month,[month] - 1,dateadd(year,year(@) - year(0),0)) + [day] - 1

    )

    )

end

 

--测试示例

select dbo.udf_GetStar('2010-05-04')

select dbo.udf_GetStar('2009-01-04')

select dbo.udf_GetStar('2007-12-04')

 

--运行结果

/*

金牛座

魔羯座

射手座

*/

0 0
原创粉丝点击