Nå, MS Access repræsenterer dens datetime
datatype som en double
:
- Epoken
(nulpunkt) i MS-kalenderen er
30 December 1899 00:00:00
- Heltalsdelen af
double
er forskydningen i dage fra epoken, og - Brøkdelen af
double
er brøkdelen af dagen.
I henhold til specifikationen, domænet for datodelen af en MS Access datetime
er
- nedre grænse:
1 January 100
- øvre grænse:
31 December 9999
Og siden domænet for en SQL Server datetime
er:
- nedre grænse:
1 January 1753
- øvre grænse:
31 December 9999
alle datoer i din MS Access-database før 1. januar 1753 vil give problemer. Du skal finde de falske data og rette dem. Et par tilgange:
-
I din adgangsdatabase skal du oprette en visning/forespørgsel for at præsentere dataene i en form, der er velsmagende for SQL Server. Derefter skal du masseindlæse fra det til SQL Server.
-
Ofte, da det stort set er en selvfølge, at dine kildedata er snavsede/ødelagte, vil man, når bulk-indlæsning af data ind i SQL Server, bulk-indlæse kildedataene i en arbejdstabel, hvor alle kolonnerne er nullable, af typen
varchar
typer, og som ikke har nogen begrænsninger/nøgler. Når det er gjort, skal du køre en lagret procedure, der foretager den nødvendige oprydning og massering af dataene, før de flyttes til det rigtige hjem.