繼我在https://stackoverflow.com/questions/7387418/where-clause-using-date-taken-from-string-variable-sent-out-incorrect-return-in-s的問題,這纔是問題的簡化版本:轉換字符串變量爲DateTime返回錯誤值在SSIS
用於OLE DB源查詢是這樣的,裏面一個字符串類型變量:
select
*
from
A
where
A.A_IN_DATETIME < CONVERT(DATETIME,?,105) and
(A.A_OUT_DATETIME is NULL or A.A_OUT_DATETIME >= CONVERT(DATETIME,?,105))
上述查詢工作一個Foreach變量枚舉的內部,與所用的變量是由該字符串變量的數組:13-09-2011,12-09-2011,11-09-2011,10 -09-2011,09-09-2011,08-09-2011,07-09-2011,06-09-2011,05-09-2011,04-09-2011,03-09-2011,02-09 -2011,01-09-2011
問題的症狀是這樣的:例如,A中有A_IN_DATETIME = 2011-09-12(YYYY-MM-DD格式)和A_OUT_DATETIME = NULL中的記錄。
上述查詢的正確結果是它應該只返回13-09-2011的值,其餘的返回0記錄,但在執行過程中,結果是12-09-2011到10- 09-2011也。我不知道SSIS是否錯誤地將12-09-2011,11-09-2011,10-09-2011至09-12-2011,09-11-2011,09-10-2011(FYI,I已經通過將腳本任務生成的消息框打印出來,檢查瞭解析結果以及循環枚舉器,並且它仍然處於正確的形式)。
有沒有解決這個問題的方法?
請參閱HTTP ://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts/ –