我只是想知道是否有人知道如何選擇指定列將出現投射問題的行。從SQL服務器中選擇發生投射問題的行
即。
SELECT * FROM ThisTable噸
WHERE 0 <>(選擇鑄造(t.value如 日期時間))
'選擇流延(如t.value日期時間)' 將理想情況下返回@@ error 的結果以指示發生了投射問題。
有沒有人有任何想法,因爲我血腥難住。
乾杯
我只是想知道是否有人知道如何選擇指定列將出現投射問題的行。從SQL服務器中選擇發生投射問題的行
即。
SELECT * FROM ThisTable噸
WHERE 0 <>(選擇鑄造(t.value如 日期時間))
'選擇流延(如t.value日期時間)' 將理想情況下返回@@ error 的結果以指示發生了投射問題。
有沒有人有任何想法,因爲我血腥難住。
乾杯
SELECT * FROM ThisTable t
WHERE ISDATE(t.value) = 1 -- or 0 for NOT a datetime valaue
ISDATE是你的朋友,如果我理解正確的話......
我也一直在尋找一個解決方案在SQL服務器轉換爲varchar爲datetime時避免錯誤。
我有一個varchar列包含DD.MM.YYYY或MM.YYYY不一致條目的日期。通過簡單的強制轉換,查詢才能正常工作,直到遇到以前格式的記錄,這會導致轉換錯誤並中斷查詢。使用你的建議,我可以很容易地捕捉MM.YYYY值並將它們設置爲null,這正是我想要的。
SELECT CASE WHEN ISDATE(contract_date) = 1
THEN CAST(contract_date AS datetime)
ELSE NULL
END converted_dates
FROM contracts
「01.01.2009」成功轉換爲「01.01.2009 00:00:00」,而「01.2009」返回爲NULL。
哈哈耶一個同事過來了20分鐘後,把它從他的竅門中拉出來......甚至不知道isdate是否存在!去顯示你每天學習新的東西;) 謝謝你的迴應:) – user155548 2009-09-03 00:25:22