解决python3向数据库插入日期字符串报错的问题

Posted 音译昌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决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向数据库插入日期字符串报错的问题的主要内容,如果未能解决你的问题,请参考以下文章

解决向表中添加中文数据报错的问题

mysql插入中文报错的问题

解决mysql插入中文字符报错的问题ERROR 1366 (HY000): Incorrect string value: ‘xE5xB0x8FxE6x98x8E‘ for column

python3中https urlopen()报错的解决方法

python2,python3同时安装时,python3可以安装并升级pip库,python2报错的解决办法

lambda的where条件里面使用日期计算报错的解决办法