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

使用pyodbc读取MS Access时间类型字段格式异常求助

解决pyodbc读取Access TIME字段返回带默认日期的datetime问题

问题说明

使用pyodbc读取Access数据库的TIME类型字段时,返回结果为datetime.datetime(1899, 12, 30, 12, 14, 29)这类包含默认基准日期的datetime对象,而非预期的HH:MM:SS格式字符串,但直接在Access中执行查询时显示正常。

原因

Access的TIME类型通过ODBC驱动连接时,会被映射为包含默认基准日期(1899-12-30)的datetime对象,这是ODBC对Access时间类型的标准处理逻辑。

解决方案

方案1:Python代码内格式化datetime对象

遍历查询结果时,对time字段调用字符串格式化方法提取时间部分:

cursor = conn.cursor()
cursor.execute(query)
for row in cursor.fetchall():
    # 假设第二个字段为time_inserted
    formatted_time = row[1].strftime("%H:%M:%S")
    print(row[0], formatted_time)

方案2:SQL查询阶段直接格式化输出

利用Access内置的Format()函数,在查询时直接返回HH:MM:SS格式的字符串:

SELECT [F].float, Format([I].time_inserted, 'HH:MM:SS') AS time_inserted
FROM [Float] AS F, Insersion AS I
WHERE F.floaterID = I.floaterID;

此方式下Python读取到的结果直接是目标格式的字符串,无需额外处理。

内容的提问来源于stack exchange,提问作者Clyde Simpson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:33:20