怎么来根据数据库中的日期来判断星座

select top 10000 id,name,birthday,
case
when substring(Convert(varchar(10),birthday,12),3,4) between '0321' and '0419'
then '白羊座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0420' and '0520'
then '金牛座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0521' and '0620'
then '双子座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0621' and '0721'
then '巨蟹座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0722' and '0822'
then '狮子座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0823' and '0922'
then '处女座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0923' and '1022'
then '天秤座'
when substring(Convert(varchar(10),birthday,12),3,4) between '1023' and '1121'
then '天蝎座'
when substring(Convert(varchar(10),birthday,12),3,4) between '1122' and '1221'
then '射手座'
when substring(Convert(varchar(10),birthday,12),3,4) between '1222' and '0119'
then '摩羯座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0120' and '0218'
then '水瓶座'
when substring(Convert(varchar(10),birthday,12),3,4) between '0219' and '0320'
then '双鱼座'
else birthday end as constellation
from 表A

这段代码一直报错。格式转换有问题。求助!

http://blog.csdn.net/qq_34523482/article/details/70054647