如何全局转换MariaDB Connector/Python返回的datetime为字符串?
全局转换MariaDB Connector返回的datetime格式
要实现全局自动将查询返回的datetime/timestamp类型转为指定格式的字符串,可通过MariaDB Connector/Python的自定义类型转换器完成,无需逐个查询处理:
完整实现代码
import mariadb import sys from datetime import datetime # 自定义转换函数:将datetime对象转为带毫秒的字符串 def format_datetime(value): # 格式化为YYYY-MM-DD HH:MM:SS.sss return value.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3] try: # 连接时配置全局转换器 conn = mariadb.connect( # 填写你的连接参数:host="xxx", user="xxx", password="xxx", database="xxx" converter={ mariadb.DATETIME: format_datetime, mariadb.TIMESTAMP: format_datetime # 如需处理DATE类型,可添加:mariadb.DATE: lambda v: v.strftime('%Y-%m-%d') } ) except mariadb.Error as e: print(f"Error connecting to MariaDB Platform: {e}") sys.exit(1) cur = conn.cursor() cur.execute("SELECT * FROM <table>") myresult = cur.fetchall() print(myresult) cur.close() conn.close()
核心说明
- 全局生效:通过
connect()的converter参数传入类型-函数映射,所有查询返回的对应类型数据都会自动转换。 - 格式控制:
strftime('%Y-%m-%d %H:%M:%S.%f')生成带微秒的字符串,[:-3]截取后三位得到毫秒精度,匹配你需要的格式。 - 动态修改:如果已创建连接,可直接修改连接对象的转换器:
conn.converter[mariadb.DATETIME] = format_datetime conn.converter[mariadb.TIMESTAMP] = format_datetime
内容的提问来源于stack exchange,提问作者Abhinandan Sharma
相关产品推荐
相关产品推荐

