解決python3向資料庫插入日期字串報錯的問題
[Err] 22007 - [SQL Server]從字串轉換日期和/或時間時,轉換失敗。
插入的日期字串(日期字串是從檔案中讀取的,將檔案中的資料轉存到關係型資料庫中):
'2017/04/10'
字串看著沒問題,我用len(str)檢視長度,發現長度為11,多出了一個字元長度。
複製到notepad++檢視,更改字串編碼:
編碼為:UTF-8-BOM時看到字串中多出了一個“?”
看到這個應該知道是什麼原因導致的了,所以就有了解決辦法。
由日期字串可以看出,其中只包含了資料和'/'這兩種字元,我想到了用正則表示式來處理,把數字和'/'以外的字元全部去除。
re.sub('[^0-9 | \/]', '', str)
re.sub()是python3中re模組下的一個替換字串的函式(替換掉滿足正則表示式的內容,不滿足的保持不變)。
第一個引數是匹配的正則表示式;
第二個引數是要替換的目標字元;
第三個引數是需要處理的字串。
經過對字串的處理,日期字串就變得正常了,再次插入的話就不會報錯了。
謹記那些年入過的坑!
相關推薦
解決python3向資料庫插入日期字串報錯的問題
[Err] 22007 - [SQL Server]從字串轉換日期和/或時間時,轉換失敗。 插入的日期字串(日期字串是從檔案中讀取的,將檔案中的資料轉存到關係型資料庫中): '2017/04/10' 字串看著沒問題,我用len(str)檢視長度,發現長度為11,多出了一個字元
MySql資料庫插入或更新報錯:Cannot add or update a child row: a foreign key constraint fails
具體報錯資訊: Cannot add or update a child row: a foreign key constraint fails (`xxx`.`AAA`, CONSTRAINT `tb_competitionmsg_ibfk_2` FOREIGN KEY (`organizerid`) R
向mysql 插入中文數值報錯
報錯:Error 1366: Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95' for column 'description' at row 1 原因是資料庫欄位沒有設定編碼為utf8而是預設的lanti (1)查看錶
oracle資料庫插入時間戳報錯;匯入dmp檔案亂碼
產生原因: 資料庫字符集跟電腦客戶端環境變數字符集不一致會導致時間戳插入報錯; 資料庫字符集跟電腦客戶端環境變數字符集不一致會導致使用PL_SQL工具匯入的sql檔案中的資訊在資料庫亂碼 解決辦法: 檢視資料庫字符集 select * from nls
SpringMVC頁面傳參到後臺,日期字串報錯處理
在controller類中加入如下程式碼, 如果頁面的查詢格式都是同一格式的日期,則直接放到BaseController類中即可: @InitBinder protected void initBinder(WebDataBinder binder) { Simp
SqlServer 如何向資料庫插入帶有單引號(')的字串
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
用Java向SQL Server資料庫中插入float資料報錯An error occurred while converting the Float value to JDBC data type
作者:翁鬆秀 用Java向SQL Server資料庫中插入float資料報錯 用Java向SQL Server資料庫中插入float資料報錯
[SqlServer]如何向資料庫插入帶有單引號(')的字串
今天在做一個複製功能的時候,發現存在單引號字串與INSERT INTO 語句的' '產生衝突。 在網路上找到了一個這樣功能 如何向資料庫插入帶有單引號(')的字串 用SQL語句往資料庫某欄位(字元型)中插入字串,但是當該字串中帶有單引號(')時就會出錯!因為插入的字串
已經設置utf8的mysql cmd中插入中文執行報錯解決方法
客戶 res img 說明 設置 -1 bsp 插入 gbk 說明cmd客戶端的字符集是gbk,結果集也要設置為gbk。 使用語句 set character_set_client=gbk; set character_set_results=gbk; 就
Linux MySQL資料庫遠端連線插入中文資料報錯
剛開始學Java,最近在用Java寫一個圖書管理系統,基本已經完成。寫的過程中資料庫都是本地訪問的,在我基本寫完改成遠端訪問伺服器中的MySQL時,總是報錯有一個列中的值錯誤,找了半天發現是編碼問題導致不能插入中文資料。下面是解決辦法: 1、修改MySQL配置 sudo vim
mysql插入datetime型別報錯問題解決
sql = "insert into datalist(`name`,datetime) VALUES (%s,str_to_date(%s,'%%Y-%%m-%%d %%h:%%i:%%s'))"注意時間格式化:'%%Y-%%m-%%d %%h:%%i:%%s'str_to_date:是mysql自帶的字串
JSP向資料庫插入資料(簡單註冊功能)
這篇部落格為大家講述,如何從jsp頁面中註冊一個賬號,並插入到資料庫。 首先在school資料庫下建立user表,欄位如下: 然後,建立web專案,搭建環境如下: 然後就開始我們的程式碼了。 1.首先把BaseDao.java貼上到com.tao.dao包下,li
在SSH框架中,多個持久層物件相互引用,從而引發分頁查詢中,查詢所得的持久化物件轉換為JSON字串報錯的原因及解決方案
引言: 使用EasyUI框架的小夥伴們都知道,在使用datagrid(資料表格)時,會傳入如一個URL,用於請求資料表格中的所顯示的資料: <!--建立一個空表格--> <table id="mytable"></table>
webMethods-BatchInsert 插入空日期型別報錯處理
1.異常報錯 今天測試一個adapter service時batchInsert_ET_U17_860_DETAIL,因為SHIP_DATE是空值,導致插入異常報錯. [ART.117.4002] Adapter Runtime (Adapter Serv
java端向資料庫插入欄位寫法
面向開發需求,記錄學習之路,詳情看原文連結。♪(^∀^●)ノ 從java端向資料庫端插入資料寫法,下面記錄下面一種的寫法。 insert id="insertArea" useGeneratedKeys="true" keyProperty="areaId"
jsp向資料庫插入中文問號和=火星文亂碼問題
1.向資料庫插入問號亂碼 Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost/資料庫名?useUnicode=true&characterEncoding=UTF-8”,“root”,""); //連
Linux MySQL資料庫遠端連線插入中文資料報錯
剛開始學Java,最近在用Java寫一個圖書管理系統,基本已經完成。寫的過程中資料庫都是本地訪問的,在我基本寫完改成遠端訪問伺服器中的MySQL時,總是報錯有一個列中的值錯誤,找了半天發現是編碼問題導致不能插入中文資料。下面是解決辦法: 1、修改MySQL配置
mysql資料庫使用insert語句插入中文資料報錯
在mysql的命令列模式中,通過insert語句插入中文資料的時候報錯,類似於下面這樣: Incorrect string value: '\xE7\x8F' for column 'name' at row 1 造成這個錯誤通常是由於建立資料表的時候使用了不正確的編碼格式,可以使用如下命令檢視操作的目
Mybatis中對於Mysql資料庫中NULL的日期資料報錯 mysql錯誤: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP
原 mysql錯誤: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 2010年06月01日 17:38:00 閱讀數:5307
java使用POI解析Excel表格中由純數字組成的字串報錯問題&解決資料自動儲存為科學計數法問題
1.在解析Excel表格中由純數字組成的字元時會報錯 String telephone = row.getCell(1).getStringCellValue(); 在得到一個字串型別的手機號碼時報錯: java.lang.IllegalStateException: C