🧾SQL Server 日期轉換錯誤 (241) + Loader 檔名解析失敗?一次搞懂半導體資料載入常見陷阱與解法
🔍 問題背景:Loader 為什麼突然壞掉? 在實務中,我們常會遇到這種情況: Loader 原本正常運作 某一天突然: ❌ 資料全部進不去 ❌ log 出現錯誤 ❌ 檔案被丟到 fail 資料夾 這篇文章用一個真實案例帶你理解: 👉 其實問題不是一個,而是兩個「時間相關」問題同時發生 🚨 問題一:SQL Server Error 241(日期轉換失敗) 📌 錯誤訊息長這樣 DataError: ('22007', 'SQL Server 無法將字串轉換成 datetime (241)') 🧠 問題原因(白話版) 你的程式做了這件事: 👉 把「不存在的時間」當成字串寫進資料庫 例如: END_TIME = 'NaT' 但 SQL Server 看到會說: 👉「這不是日期,我不認識」 所以直接報錯。 🧩 為什麼會出現 NaT? 在 Python(特別是 pandas)裡: 值 意義 NaT Not a Time(時間版的空值) 當 Loader 解析不到時間,就會產生這個值。 ❌ 常見錯誤寫法(示意) # ❌ 錯誤:直接轉字串 sql = f"UPDATE table SET end_time = ' { time_value } '" 當 time_value = NaT 時: 'end_time = 'NaT'' 👉 SQL Server 爆炸 💥 ✅ 正確作法 ✔ 方法一:改成 NULL if time_value i...