1. 程式人生 > >解決python3向資料庫插入日期字串報錯的問題

解決python3向資料庫插入日期字串報錯的問題

[Err] 22007 - [SQL Server]從字串轉換日期和/或時間時,轉換失敗。

  插入的日期字串(日期字串是從檔案中讀取的,將檔案中的資料轉存到關係型資料庫中):

'2017/04/10'

字串看著沒問題,我用len(str)檢視長度,發現長度為11,多出了一個字元長度。

複製到notepad++檢視,更改字串編碼:
編碼為:UTF-8-BOM時看到字串中多出了一個“?”

看到這個應該知道是什麼原因導致的了,所以就有了解決辦法。
由日期字串可以看出,其中只包含了資料和'/'這兩種字元,我想到了用正則表示式來處理,把數字和'/'以外的字元全部去除。
re.sub('[^0-9 | \/]', '', str)

  

re.sub()是python3中re模組下的一個替換字串的函式(替換掉滿足正則表示式的內容,不滿足的保持不變)。
第一個引數是匹配的正則表示式;
第二個引數是要替換的目標字元;
第三個引數是需要處理的字串。

 經過對字串的處理,日期字串就變得正常了,再次插入的話就不會報錯了。

 

 

謹記那些年入過的坑!