前言:
当前姐妹们对“mysql字符串转化日期”都比较看重,朋友们都想要分析一些“mysql字符串转化日期”的相关知识。那么小编也在网络上搜集了一些关于“mysql字符串转化日期””的相关知识,希望各位老铁们能喜欢,朋友们一起来了解一下吧!最近大量从原来的 MySQL 数据库导出数据,再往 SQLite 数据库里导入数据,使用 Navicat 导出导入挺趁手,却没发现,导入了大量格式为【月/日/年】的日期,跟原先导入的格式为【年-月-日】的日期混在一起。
懒得删数据、重新导出导入了,同时也是为了练习一下用 Python 的 sqlite3 操纵数据库,所以就写了几行脚本,几经测试后,成功统一了日期格式。
直接上代码:
import sqlite3, os, datetimeos.chdir(r"D:\drkPython\SQL\SQLite3")cwd = os.getcwd()con = sqlite3.connect('DB/opeu.db')con.execute('PRAGMA foreign_keys = ON')cur = con.cursor()sql = """SELECT uid, bday FROM usr WHERE source = 'IAHR' AND bday IS NOT NULL"""cur.execute(sql)data = cur.fetchall()for row in data: bday_old = row[1] bday_new = datetime.datetime.strptime(bday_old, "%m/%d/%Y") bday_new = datetime.datetime.strftime(bday_new, "%Y-%m-%d") print(bday_new) cur.execute("""UPDATE usr SET bday = ? WHERE uid = ?""", (bday_new, row[0])) con.commit()con.close()代码思路
大致的思路是:找出所有需要转换格式的数据列,利用 datetime.datetime.strptime() 函数将格式为【月/日/年】的字符串转换为时间戳,然后再用 datetime.datetime.strftime() 函数将标准时间戳转换为【yyyy-mm-dd】的字符串,然后用 UPDATE 语句修改数据。
一个一个转换,总共1万条数据,操作了半天,应该是这个方法太笨了,但好歹解决问题了。不知道用 cur.executemany() 能不能改善性能,只能等日后再研究研究了。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #mysql字符串转化日期