Chà, MS Access đại diện cho datetime
của nó kiểu dữ liệu dưới dạng double
:
- kỷ nguyên
(điểm 0) của lịch MS là
30 December 1899 00:00:00
- Phần nguyên của
double
là mức bù đắp theo ngày kể từ kỷ nguyên và - Phần phân số của
double
là một phần nhỏ trong ngày.
Theo đặc điểm kỹ thuật, miền của phần ngày của MS Access datetime
là
- giới hạn dưới:
1 January 100
- giới hạn trên:
31 December 9999
Và kể từ miền của SQL Server datetime
là:
- giới hạn dưới:
1 January 1753
- giới hạn trên:
31 December 9999
bất kỳ ngày nào trong cơ sở dữ liệu MS Access của bạn trước ngày 1 tháng 1 năm 1753 sẽ gây ra sự cố. Bạn cần tìm dữ liệu không có thật và sửa chữa nó. Một số cách tiếp cận:
-
Trong cơ sở dữ liệu truy cập của bạn, hãy tạo một dạng xem / truy vấn để trình bày dữ liệu trong một biểu mẫu phù hợp với SQL Server. Sau đó, tải hàng loạt từ đó vào SQL Server.
-
Thông thường, vì người ta đã bỏ qua khá nhiều kết luận rằng dữ liệu nguồn của bạn bị bẩn / bị hỏng, khi tải dữ liệu hàng loạt vào SQL Server, người ta sẽ tải dữ liệu nguồn hàng loạt vào một bảng làm việc, nơi tất cả các cột đều có thể null, thuộc loại
varchar
loại và không có ràng buộc / khóa. Sau khi hoàn tất, hãy chạy một quy trình đã lưu trữ để thực hiện việc dọn dẹp và xoa bóp dữ liệu cần thiết trước khi chuyển dữ liệu đó về đúng vị trí của nó.