2017-10-16 208 views
1

Hye guys ..需要您的一些帮助..对不起我的英文破碎。 实际上,即时消息是什么,我需要从csv文件上传一些数据到Microsoft Access中,其中包含一个最后的日期..编码整体没关系。但我得到日期的问题..当我上传到数据库中,我不得不插入按照最后日期csv文件..但我得到的是,在数据库中,它指的是笔记本电脑上的当前时间。日期时间格式按照日期发送CSV文件

例如,LASTUPDATE是16/10/2017 ..当我上传,LASTDATE将我的笔记本电脑当前时间跟随..

这里是一个代码..

Public Function GetDateFormatToDB(vDateTime As String) As String 

    Try 
     Dim format As String = "MM/dd/yyyy HH:mm:ss" 
     Dim expenddt As Date 
     Date.TryParseExact(vDateTime, format, System.Globalization.DateTimeFormatInfo.InvariantInfo, Globalization.DateTimeStyles.None, expenddt) 
     Return expenddt 
    Catch ex As Exception 
     Return Nothing 
    End Try 


End Function 
+0

请张贴可能会重现问题的代码。它被称为[mcve]此代码不会告诉任何有关您的问题 – Steve

+0

如果问题是与数据库插入有关,请显示* that *代码。你还应该设置'Option Strict On' - 该代码承诺返回一个字符串(这看起来是DB插入的错误类型),然后在代码中返回一个日期。此外,请阅读[问]并参加[游览] – Plutonix

+0

顺便说一句,你的函数应该返回一个字符串,但你返回一个日期。它们不是同一件事。为了解决你的错误,编译器将你的结果转换成一个不能被信任的结果的字符串。在你的项目属性中设置Option Explicit On – Steve

回答

0

如果您需要返回Nothing如果出现错误,您的函数应该有Nullable(Of Date)(或Date?)作为返回值。

如果您只想存储Date对象的日期部分,请使用Date对象的Date属性。 在你的代码片段中,它将是expenddt.Date。这样你就摆脱了Date对象的时间部分。

0

首先你需要记住,如果输入日期像'8:00:00'格式'HH:mm:ss'。将返回无日期,你需要使用'08:00:00'或'H:mm:ss' 所以你需要确定日期格式是否设置正确,输入格式是否相同。

  If Not Date.TryParseExact(vDateTime, format, 
            System.Globalization.DateTimeFormatInfo.InvariantInfo, 
            Globalization.DateTimeStyles.None, 
            expenddt) Then 
      Debug.Print("Parse Date Fail") 
      End If 

而且我小巷使用预定义的格式可以肯定,如果在正确的所有输入的日期格式如果u想确保ü解析字符串,这

If vDateTime Like "##/##/## ##:##:##" Then Format = "MM/dd/yyyy HH:mm:ss" 

类似的东西,可能是有用的CSV解析相同的格式