Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ngày Phải trong khoảng từ 1/1/1753 12:00:00 AM đến 12/31/9999 11:59:59 PM Lỗi quá chậm SqlBulkCopy

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

  • 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ó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng toán tử GIỮA trong SQL Server

  2. CẬP NHẬT-no-op trong câu lệnh SQL MERGE

  3. Làm cách nào để tôi có thể bỏ qua cơ sở dữ liệu hệ thống và cho phép công việc tác nhân SQL Server 2008 di chuyển qua ERROR_NUMBER 208?

  4. Làm cách nào để chỉnh sửa bảng để bật CASCADE DELETE?

  5. Người dùng SQL Server mới không đăng nhập được