2017-10-16 205 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解析相同的格式