从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。 20

sql一个表a,包含姓名,(出生日期)birth_date,(身份证号)code,想截取身份证号码里的出生日期赋值给出生日期列:,我的语句:updateasetbirth... sql一个表a,包含姓名,(出生日期)birth_date,(身份证号)code,想截取身份证号码里的出生日期赋值给出生日期列:,我的语句:
update a set birth_date=substring(code,7,4)+'-'+substring(code,11,2)+'-'+substring(code,13,2)

提示:从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。语句终止
展开
 我来答
linkzq
2008-07-17 · TA获得超过736个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:0
展开全部
使用datatime类型,你用的是MySQL吧,如果你想更新出生日期,可以直接这样写:

update a set birth_date=substring(code,7,8);

当然了,MySQL对日期类型的检查不是很严格,但它仍然要保证一个日期的月份在1-12之间,日在1-31之间。如果这样更新时,还出现错误,有可能是身份证号码里保存出生日期的那几位不是一个有效的日期。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式