Bonjour,
Je suis en train de migrer des données d'une base de données Pervasive vers SQLServer via SSIS.
Du coté pervasive les dates sont en date string soit :
20080717 pour le 17 juillet 2008
00000000 pour une date nulle
Je parse donc mes données dans un script en VB afin d'obtenir un datetime coté SQL server.
Tout fonctionne pour une date normale mais j'obtiens une date au 30/12/1899 pour les dates à 0.
J'ai essayé de contourner le problème par un sqldatetime égal à nul mais ca ne marche pas non plus (ci joint code)
J'ai autorisé le nul sur le champs datetime et je souhaiterais qu'il reste à nul s'il rencontre une valeur '00000000' dans la base pervasive.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Public Class ScriptMain Inherits UserComponent Dim datenull As SqlDateTime Public Overrides Sub Entrée0_ProcessInputRow(ByVal Row As Entrée0Buffer) ' datenull = SqlDateTime.Null ' Parsage de la date de création If Not Row.DateCreation_IsNull Then If Row.DateCreation = "00000000" Then Row.TDateCreation = datenull Else Dim Annee As Integer = Integer.Parse(Row.DateCreation.Substring(0, 4)) Dim Mois As Integer = Integer.Parse(Row.DateCreation.Substring(4, 2)) Dim jour As Integer = Integer.Parse(Row.DateCreation.Substring(6, 2)) Row.TDateCreation = New DateTime(Annee, Mois, jour) End If End Sub End Class End If
Quelqu'un a-t-il une idée?
Merci d'avance
Partager