以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]向通过MSSQL命令 批量更新年龄 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185980) |
|
-- 作者:81538475 -- 发布时间:2023/3/29 16:06:00 -- [求助]向通过MSSQL命令 批量更新年龄 Dim cmd As New SQ\\Command cmd.Connecti cmd.Com mand Text = "UPD ATE {人员信息表} SET 年龄 = Iif(DATALENGTH(身份证号)<18,(substring(CONVERT(varchar(100), GETDATE(), 23),1,4)-(1900+substring(身份证号,7,2)))-(substring(身份证号,9,4)-format(Getdate(),\'%m%d\')),(substring(CONVERT(varchar(100), GETDATE(), 23),1,4)-substring(身份证号,7,4))-(substring(身份证号,11,4)-format(Getdate(),\'%m%d\') )) WHERE 身份证号 is not null AND 身份证号<>\'\'" cmd.ExecuteNonQuery()
|
|
-- 作者:有点蓝 -- 发布时间:2023/3/29 16:20:00 -- 有什么问题? |
|
-- 作者:81538475 -- 发布时间:2023/3/29 16:24:00 -- 数据类型 nvarchar 和 nvarchar 在 subtract 运算符中不兼容。 这个提示 |
|
-- 作者:有点蓝 -- 发布时间:2023/3/29 16:37:00 -- 加减乘除要转换为数值型才能计算,字符串是没有办法做四则运算的 |
|
-- 作者:81538475 -- 发布时间:2023/3/29 20:24:00 -- 问了一下chatgpt4 。 。。给出了我要的答案 SE\\ECT 身份证号, FLOOR(DATEDIFF(DAY, SUBSTRING(身份证号, 7, 4) + \'-\' + SUBSTRING(身份证号, 11, 2) + \'-\' + SUBSTRING(身份证号, 13, 2), GETDATE()) / 365.25) AS age FROM 人员信息表 |
|
-- 作者:2900819580 -- 发布时间:2023/3/29 20:32:00 -- 如何问 chatgpt4 |
|
-- 作者:81538475 -- 发布时间:2023/3/29 20:37:00 -- 这样 [此贴子已经被作者于2023/3/29 20:37:25编辑过]
|
|
-- 作者:菜鸟王中王 -- 发布时间:2023/3/30 9:16:00 --
|