求日期所属星座的 T-SQL UDF (用户自定义函数) -张志
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


求日期所属星座的 T-SQL UDF (用户自定义函数)

发表时间:2006/9/17 评论(0) 浏览(7090)  评论 | 加入收藏 | 复制
   
摘 要:求日期所属星座的 T-SQL UDF (用户自定义函数) 
正 文:
use northwind
go
CREATE FUNCTION GetStar(@ datetime)
RETURNS varchar(100)
AS
BEGIN
--仅一句 SQL 搞定
RETURN
(
--declare @ datetime
--set @ = getdate()
select max(star)
from
(
-- 星座,该星座开始日期所属月,该星座开始日期所属日
select '魔羯座' as star,1 as [month],1 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(day,[day]-1,dateadd(month,[month]-1,dateadd(year,datediff(year,0,@),0)))
=
(
select max(dateadd(day,[day]-1,dateadd(month,[month]-1,dateadd(year,datediff(year,0,@),0))))
from
(
select '魔羯座' as star,1 as [month],1 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(day,[day]-1,dateadd(month,[month]-1,dateadd(year,datediff(year,0,@),0)))
)
)
end

go
--测试
use northwind
select dbo.getstar(birthdate),count(*)
from employees
group by dbo.getstar(birthdate)

Access软件网交流QQ群(群号:198465573)
 
 相关文章
计算所属日期的第几个星期,星期几的日期的函数  【Victor Duane  2007/10/13】
一个简单的星座计算的例子  【何勇  2007/11/20】
【Access自定义函数】字符串中数字相关的几个自定义函数  【网行者  2013/2/6】
【Access自定义函数】不规则提取日期数据的示例  【红尘如烟  2013/2/13】
【Access自定义函数】测算星座,根据日期算出星座,十二星座查询...  【麥田  2013/4/6】
常见问答
技术分类
相关资源
文章搜索
关于作者

张志

文章分类

文章存档

友情链接