You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何全局转换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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:15:40