2017-10-16 4 views
1

Hye Jungs .. brauche Hilfe von dir .. Entschuldigung für mein gebrochenes Englisch. eigentlich, was ich bin, muss ich einige Daten aus CSV-Datei in Microsoft Access hochladen, die ein LASTDATE Datum enthalten .. für die Codierung insgesamt in Ordnung. aber ich bekomme Problem mit dem Datum .. wenn ich in die Datenbank hochlade, muss ich bis zum LASTDATE-Datum in der CSV-Datei einfügen..aber was ich bekomme ist, in der Datenbank bezieht es sich auf die aktuelle Zeit auf dem Laptop.DateTime Format Verfolgen Sie das Datum in der CSV-Datei

zum Beispiel ist LASTUPDATE 16/10/2017 .. wenn ich hochladen, wird durch lastdate aktuelle Zeit auf meinem Laptop folgen ..

hier ein Code ..

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

Bitte schreiben Sie Code, der das Problem reproduzieren könnte. Es heißt ein [mcve] Dieser Code sagt nichts über Ihr Problem – Steve

+0

Wenn das Problem mit dem DB-Einfügung ist, zeigen Sie * das * Code. Sie sollten auch "Option Strict On" festlegen - dieser Code verspricht, eine Zeichenfolge zurückzugeben (die für einen DB-Einfügung der falsche Typ scheint), aber gibt dann ein Datum in dem Code zurück. Bitte lesen Sie [ask] und nehmen Sie die [Tour] – Plutonix

+0

Übrigens sollte Ihre Funktion eine Zeichenfolge zurückgeben, aber Sie geben ein Datum zurück. Sie sind nicht dasselbe. Um Ihren Fehler zu beheben, konvertiert der Compiler Ihr Ergebnis in eine Zeichenfolge mit Ergebnissen, die nicht vertrauenswürdig sind. Setzen Sie Option Explicit On in Ihren Projekteigenschaften – Steve

Antwort

0

Wenn Sie müssen Nothing im Falle eines Fehlers zurückgegeben werden, sollte Ihre Funktion Nullable(Of Date) (oder Date?) als Rückgabewert haben.

Wenn Sie nur den Datumsteil eines Date Objekts speichern möchten, verwenden Sie die Date Eigenschaft Ihres Date Objekts. In Ihrem Code-Snippet wäre es expenddt.Date. Auf diese Weise werden Sie den Zeitteil des Objekts Date los.

0

Zuerst müssen Sie sich erinnern, wenn Eingabedatum wie '8:00:00' formatieren 'HH: mm: ss'. Gibt Nothing Date zurück, für diesen Fall brauchen Sie '08: 00: 00 'oder' H: mm: ss ' . Sie müssen also sicher sein, dass das Datumsformat richtig eingestellt ist und die Eingabe dasselbe Format hat.

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

Auch Gassen i von csv-Parsing-Formaten unter Verwendung vordefinierter sicher sein, wenn alle Eingabedatum korrekt in

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

so etwas Formate kann nützlich sein, wenn u wollen sicher sein, dass u Zeichenfolge diese analysieren Dasselbe Format