以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问:字符型日期如何转换为正常的日期格式  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109293)

--  作者:wangwang106
--  发布时间:2017/11/8 21:21:00
--  请问:字符型日期如何转换为正常的日期格式

图片点击可在新窗口打开查看此主题相关图片如下:表b.jpg
图片点击可在新窗口打开查看
各位老师好,有个问题即便查了帮助后,也实在是解决不了,请帮忙,谢谢!
将两个表分别导入foxtable后,日期列都变成了字符串格式。一个表日期列变成“20171002”,另一个表变成“43009”
尝试着Format、CDate两个函数均未成功:
1、Format(str,"yyyy-MM-dd")       
2、CDate(str)
分别提示错误:从字符串“yyyy-MM-dd”到类型“Date”的转换无效。
                    从字符串“43009”到类型“Date”的转换无效。

具体情况见图片。
我想将字符型日期转换为正常的日期格式,请问如何解决,谢谢!!!
图片点击可在新窗口打开查看此主题相关图片如下:表a.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/11/8 21:36:00
--  

你用什么方式导入数据的?用代码?贴出代码。

 

尽量做一个例子发上来测试。

 

 


--  作者:wangwang106
--  发布时间:2017/11/9 7:58:00
--  
用代码导入的:Syscmd.Project.QuickImport()
导入后,通过ADOXBuilder对表列名进行了修改,并用 “表A.DataRows(0).Delete() ”删除了前面没有的行。
由于导入后表前几行是文字,所以系统就按字符格式将“日期”转换为字符了。
可我又不想每次都通过手工方式在Excel中修改表格式,想通过在foxtable中设置代码,一劳永逸。
多谢指导!!!

   ’修改列名
    Dim Builder As New ADOXBuilder
    Builder.Open()
    With Builder.Tables(e.Form.Controls("Label_TableName6").Text)  
        .RenameColumn(表A.DataCols(0).name,"日期")
      。。。。

    \'删除前4行
    Dim i As Integer = 0
    Do While i <= 3
      表A.DataRows(0).Delete() 
      i = i + 1
    Loop

导入的原表如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表a.xlsx
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表b.xlsx







--  作者:wangwang106
--  发布时间:2017/11/9 8:35:00
--  

原帖中的导入前、导入后的表格粘贴错位了,以下面的图片为准,抱歉!

 


图片点击可在新窗口打开查看此主题相关图片如下:表a.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:表b.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/11/9 8:37:00
--  

方法一:你可以用vba先处理excel文件,为正常的文件,再导入

 

http://www.foxtable.com/webhelp/scr/2121.htm

 

方法二:导入以后,对日期里进行处理,即可,比如

 

Dim str As String = "2017/10/1"
Dim ary() As String = str.split("/")
Dim d As Date = new Date(ary(0), ary(1), ary(2))
msgbox(d)


--  作者:wangwang106
--  发布时间:2017/11/9 8:47:00
--  
多谢有点甜版主,按照你的指导,我先研究一下。图片点击可在新窗口打开查看