sql数据库筛选出生日期,但是提示从 nvarchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值
答案:1 悬赏:70 手机版
解决时间 2021-11-18 16:11
- 提问者网友:那叫心脏的地方装的都是你
- 2021-11-17 21:39
sql数据库筛选出生日期,但是提示从 nvarchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值
最佳答案
- 五星知识达人网友:woshuo
- 2021-11-17 22:02
说明你的表 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'
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'
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯