2017-10-16 4 views
1

Hye les gars .. besoin de votre aide .. désolé pour mon anglais cassé. En fait, ce que je veux dire, j'ai besoin de télécharger des données du fichier CSV dans Microsoft Access qui contient une date LASTDATE .. pour le codage globalement correct. mais je reçois problème avec la date .. quand je télécharge dans la base de données, je dois insérer suivre par date LASTDATE dans le fichier csv ..mais ce que je reçois est, dans la base de données, il se réfère à l'heure actuelle sur ordinateur portable.DateTime Format Date de fin dans le fichier CSV

par exemple, lastupdate est 16/10/2017 .. quand je télécharger, LASTDATE suivra par heure sur mon ordinateur portable ..

est ici un 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

Veuillez envoyer un code qui pourrait reproduire le problème. C'est ce qu'on appelle un [mcve] Ce code ne dit rien à propos de votre problème – Steve

+0

Si le problème provient de l'insertion de la base de données, affichez * ce * code. Vous devriez également définir 'Option Strict On' - ce code promet de renvoyer une chaîne (qui semble être le mauvais type pour une insertion de base de données) mais retourne une date dans le code. Aussi, s'il vous plaît lire [demander] et prendre le [tour] – Plutonix

+0

Par la façon dont votre fonction devrait renvoyer une chaîne, mais vous renvoyez une date. Ce n'est pas la même chose. Pour résoudre votre erreur, le compilateur convertit votre résultat en une chaîne avec des résultats qui ne peuvent pas être approuvés. Définir l'option explicite sur dans vos propriétés de projet – Steve

Répondre

0

Si vous besoin de retourner Nothing en cas d'erreur, votre fonction devrait avoir Nullable(Of Date) (ou Date?) comme valeur de retour.

Si vous souhaitez uniquement stocker la partie date d'un objet Date, utilisez la propriété Date de votre objet Date. Dans votre extrait de code, ce serait expenddt.Date. De cette façon, vous vous débarrassez de la partie temps de l'objet Date.

0

Vous devez d'abord vous souvenir de la date d'entrée comme '8:00:00' pour formater 'HH: mm: ss'. Va renvoyer Nothing Date, vous avez besoin pour ce cas utiliser '08: 00: 00 'ou' H: mm: ss ' donc vous devez être sûr si le format de la date est correctement défini et l'entrée est ce même format.

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

Aussi j'allées l'analyse syntaxique de csv en utilisant des formats prédéfinis pour être sûr que toutes les dates d'entrée dans les formats correctement

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

quelque chose comme ça peut être utile si u veux être sûr que u Parse chaîne à cette même format