以文本方式查看主题

-  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
--  
如何问 chatgpt4 ,求教程。