J'ai une table SQL que j'essaie de lire dans mon application, qui contient une colonne datetime. Lorsque je remplis un DataTable en utilisant SqlDataAdapter dans mon application, il tronque l'année en une année à deux chiffres (donc 1/1/1999 ou 1/1/2099 montrent tous les deux 1/1/99).SqlDataAdapter tronque DateTime à 2 chiffres Année
Dim dt As DataTable
Using connection As New SqlConnection("...")
Dim query As String = "SELECT * FROM [foo]"
Dim adapter As New SqlDataAdapter(query, connection)
connection.Open()
adapter.Fill(dt)
End Using
Exécution de la même instruction SELECT directement dans SQL retourne un datetime avec un problème de l'an 4 chiffres, il semble comme un VB et non un problème de SQL.
Comment puis-je m'assurer qu'il lit toute l'année et éviter un bug semblable à celui de l'an 2000?
La date n'a pas de formats. C'est comment l'application que vous utilisez pour voir la date qui décide comment présenter une date dans un format de chaîne sur votre vidéo/imprimante. Quelle application utilisez-vous pour regarder votre champ de données? – Steve
Dans mon application, je remplis un DateTimePicker avec un format de date personnalisé de jj/MM/aaaa, et si la date est définie sur 1/1/2099, le DateTimePicker affiche la date au 1/1/1999. J'ai retracé cela à l'extraction initiale des données, car lorsque je vois le DataTable dans le débogueur après qu'il est rempli, il affiche la date au 1/1/99 et mes paramètres régionaux Windows sont configurés pour deviner deux chiffres entre 1930 et 2029. – Kevin
Qu'est-ce que le DataType dans la base de données? –