Nun, MS Access repräsentiert seine datetime
Datentyp als double
:
- Die Epoche
(Nullpunkt) des MS-Kalenders ist
30 December 1899 00:00:00
- Der ganzzahlige Teil des
double
ist der Versatz in Tagen von der Epoche, und - Der Bruchteil des
double
ist der Bruchteil des Tages.
Gemäß der Spezifikation die Domäne des Datumsteils eines MS Access datetime
ist
- Untergrenze:
1 January 100
- Obergrenze:
31 December 9999
Und seit der Domäne eines SQL Servers datetime
ist:
- untere Grenze:
1 January 1753
- Obergrenze:
31 December 9999
Alle Daten in Ihrer MS Access-Datenbank vor dem 1. Januar 1753 werden Probleme verursachen. Sie müssen die gefälschten Daten finden und beheben. Ein paar Ansätze:
-
Erstellen Sie in Ihrer Access-Datenbank eine Ansicht/Abfrage, um die Daten in einer für SQL Server ansprechenden Form darzustellen. Dann massenweises Laden davon in SQL Server.
-
Da es so ziemlich eine ausgemachte Sache ist, dass Ihre Quelldaten schmutzig/beschädigt sind, werden beim Massenladen von Daten in SQL Server die Quelldaten häufig in eine Arbeitstabelle geladen, in der alle Spalten nullfähig sind, vom Typ
varchar
Typen und das hat keine Einschränkungen/Schlüssel. Sobald dies erledigt ist, führen Sie eine gespeicherte Prozedur aus, die die notwendige Bereinigung und Massierung der Daten vornimmt, bevor sie an ihren richtigen Ort verschoben werden.