sql数据库筛选出生日期,但是提示从 nvarchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值

最好能给我一个合适的判断语句。... 最好能给我一个合适的判断语句。 展开
 我来答
边城浪子_tli
推荐于2017-12-15 · 超过19用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:35.6万
展开全部
说明你的表 cdsgus 中的 birthday 字段的值中有不是正常日期格式的数据,如:1980/01, 1980.01, 最好是将数据整成日期格式,想偷懒那就写脚本时处理,
1 先看是否为日期格式,如果是,直接用 birthday 比较
2 如果不是日期格式,看看长度
3 根据长度具体处理, 如:长 7 位,后面加个天数...

如:
SELECT * FROM cdsgus
WHERE CASE ISDATE(birthday) WHEN 1 THEN birthday ELSE CASE LEN(birthday) WHEN 7 THEN replace(birthday, '.', '/') + '/01' ELSE '1901/01/01' END END >'1980/01/01'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式