Bem, MS Access representa seu
datetime
tipo de dados como um double
:- A época
(ponto zero) do calendário MS é
30 December 1899 00:00:00
- A parte inteira do
double
é o deslocamento em dias a partir da época e - A parte fracionária do
double
é a parte fracionária do dia.
De acordo com a especificação, o domínio da parte de data de um MS Access
datetime
é - limite inferior:
1 January 100
- limite superior:
31 December 9999
E como o domínio de um SQL Server
datetime
é:- limite inferior:
1 January 1753
- limite superior:
31 December 9999
quaisquer datas em seu banco de dados MS Access anteriores a 1º de janeiro de 1753 causarão problemas. Você precisa encontrar os dados falsos e corrigi-los. Algumas abordagens:
-
Em seu banco de dados de acesso, crie uma visualização/consulta para apresentar os dados em um formato palatável para o SQL Server. Em seguida, carregue em massa disso para o SQL Server.
-
Muitas vezes, como é praticamente uma conclusão precipitada de que seus dados de origem estão sujos/corrompidos, ao carregar dados em massa no SQL Server, um carregará em massa os dados de origem em uma tabela de trabalho onde todas as colunas são anuláveis, do tipovarchar
tipos e que não tem restrições/chaves. Feito isso, execute um procedimento armazenado que faça a limpeza e a massagem necessárias dos dados antes de movê-los para seu local apropriado.