获取星座自定义函数,oracle 数据库

这篇文章介绍了在Oracle数据库中创建的GET_ZODIAC函数,该函数根据输入的公历出生日期计算并返回对应的星座,通过日期范围判断12星座的归属。
摘要由CSDN通过智能技术生成

CREATE OR REPLACE FUNCTION GET_ZODIAC(BIRTHDAY VARCHAR2)
/*
  获取星座函数
*/
 RETURN VARCHAR2
  AS
  RE_ZODIAC VARCHAR2(50);
  ZODIAC_YY VARCHAR2(4);
BEGIN
  ZODIAC_YY := SUBSTR(BIRTHDAY,1,4);
  SELECT
        CASE WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-03-21','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-04-20','YYYY-MM-DD')
             THEN '白羊座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-04-21','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-05-20','YYYY-MM-DD')
             THEN '金牛座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-05-21','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-06-21','YYYY-MM-DD')
             THEN '双子座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-06-22','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-07-22','YYYY-MM-DD')
             THEN '巨蟹座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-07-23','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-08-22','YYYY-MM-DD')
             THEN '狮子座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-08-23','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-09-22','YYYY-MM-DD')
             THEN '处女座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-09-23','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-10-22','YYYY-MM-DD')
             THEN '天秤座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-10-23','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-11-21','YYYY-MM-DD')
             THEN '天蝎座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-11-22','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-12-21','YYYY-MM-DD')
             THEN '射手座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-12-22','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-01-19','YYYY-MM-DD')
             THEN '摩羯座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-01-20','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-02-18','YYYY-MM-DD')
             THEN '水瓶座'
             WHEN TO_DATE(BIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE(ZODIAC_YY||'-02-19','YYYY-MM-DD') AND TO_DATE(ZODIAC_YY||'-03-20','YYYY-MM-DD')
             THEN '双鱼座'
             ELSE NULL END INTO RE_ZODIAC
    FROM DUAL;
  RETURN RE_ZODIAC;
EXCEPTION
  WHEN OTHERS THEN
    NULL;
END;

/

出生日期(公历)    星座名称    构成元素    颜色
03月21日─04月20日    白羊座    火    红
04月21日─05月20日    金牛座    土    绿
05月21日─06月21日    双子座    空气    黄
06月22日─07月22日    巨蟹座    水    白
07月23日─08月22日    狮子座    火    橙
08月23日─09月22日    处女座    土    灰
09月23日─10月22日    天秤座    空气    淡红
10月23日─11月21日    天蝎座    水    深红
11月22日─12月21日    射手座    火    紫红
12月22日─01月19日    摩羯座    土    黑
01月20日─02月18日    水瓶座    空气    黑
02月19日─03月20日    双鱼座    水    蓝

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值