hy vọng điều này sẽ hữu ích (tôi không sử dụng SQL Server 2012).
nếu ODBC của bạn liên kết đến db2, cho phạm vi ngày không được hỗ trợ, ví dụ:'0001-01-01', bạn cần truyền. Thông thường điều này hoạt động.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
CAST(DateLastReceipt AS CHAR(10))
FROM ProductTable')
Nếu bạn vẫn muốn kết quả là ngày, chỉ cần sử dụng CASE và thay thế ngày không hợp lệ thành ngày mặc định của bạn. Ví dụ:
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
THEN CURRENT_DATE
ELSE DateLastReceipt
END
FROM ProductTable')
Bạn có thể cần thay đổi CURRENT_DATE thành CURRENT_TIMESTAMP và thành phần CASE phụ thuộc vào máy chủ db và yêu cầu của bạn