以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如提取固定位置的日期  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193318)

--  作者:timber83
--  发布时间:2024/9/4 13:44:00
--  如提取固定位置的日期
有两列,
事故概要,事故发生日期,

事故概要列有数据   ”2024年07月24日,河北省邯郸市临漳县民房发生一起较大其他爆炸安全事故,该事故造成3人死亡,3人受伤。“

事故发生日期,需要自动提取概要中第1个字符到11个字符,2024年07月24日,但该字符需转化日期类型,
 
我用了表达式
Convert(SubString([事故概要],1,11),\'System.DateTime\') 好像不行

求助

--  作者:狐狸爸爸
--  发布时间:2024/9/4 14:04:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目481.table

我测试可以
--  作者:timber83
--  发布时间:2024/9/4 14:45:00
--  
你这个就可以,只能提取字符,列名类型设置日期,就报错了

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_17254321535704.png
图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2024/9/4 15:10:00
--  
你是不是写错列名了,做个表发上来看看
--  作者:timber83
--  发布时间:2024/9/5 9:15:00
--  
我找到问题了,提取日期后面跟着没有用符合隔开的字符,就不行,如图
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240905091334.png
图片点击可在新窗口打开查看


--  作者:timber83
--  发布时间:2024/9/5 9:24:00
--  
追问一个,
如果这里不采用表达式,采用表属性的话,
Select e.DataCol.Name
    Case "概要"
        If e.DataRow.IsNull("概要") Then
        e.DataRow("事故日期") = Nothing
        Else 
         e.DataRow("事故日期") = SubString (e.DataRow("概要"), 1, 11)
    End If
End Select
红底这一段 ,该如何编写

--  作者:狐狸爸爸
--  发布时间:2024/9/5 10:43:00
--  
e.DataRow("事故日期") = Cdate(SubString (e.DataRow("概要"), 1, 11))

还可以看看:
[此贴子已经被作者于2024/9/5 10:44:13编辑过]