MSSQL:从字符串转换日期和/或时间时,转换失败。

0.第一步:创建视图V_dangyuan_3:

select  id,姓名,加入党组织日期,所在党委,所在党支部,
case  
   when year(getdate())-year(出生日期) between 0  and 30 then 'F:0 岁 ~ 30岁' 
   when year(getdate())-year(出生日期) between 31 and 35 then 'G:31岁 ~ 35岁' 
   when year(getdate())-year(出生日期) between 36 and 40 then 'H:36岁 ~ 40岁' 
   when year(getdate())-year(出生日期) between 41 and 45 then 'I:41岁 ~ 45岁' 
   when year(getdate())-year(出生日期) between 46 and 50 then 'J:46岁 ~ 50岁' 
   when year(getdate())-year(出生日期) between 51 and 55 then 'K:51岁 ~ 55岁' 
   when year(getdate())-year(出生日期) between 55 and 60 then 'L:55岁 ~ 60岁' 
   when year(getdate())-year(出生日期) between 61 and 65 then 'M:61岁 ~ 65岁' 
   when year(getdate())-year(出生日期) between 65 and 70 then 'N:65岁 ~ 70岁'   
   when year(getdate())-year(出生日期) between 71 and 99 then 'O:71岁 -岁'     
end as 分类                                                          
  FROM  dangyuan 
    where isdate(出生日期)=1

1.第一步:查询执行成功。  

 2.第二步:执行失败

 为什么?从字符串转换日期和/或时间时,转换失败? 

3.答案:视图的case语句需要再嵌套一层。仅仅在where部分限制条件还不够。

由于原始数据存在异常,通过where条件过滤。MSSQL仍然认为存在。

case isdate(出生日期) when 1 then
       case 。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值