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

如何将Python datetime对象的微秒转换为毫秒并存入Oracle数据库

将Python datetime微秒转换为毫秒后存入Oracle数据库(cx_Oracle)

实现方法

以下是几种可靠的转换方式,确保存入Oracle的时间只保留毫秒精度:

方法1:手动截断微秒到毫秒

直接对datetime对象的microsecond字段进行取整处理,保留到毫秒级别:

import datetime
import cx_Oracle

# 获取当前时间,截断微秒至毫秒
current_dt = datetime.datetime.now()
ms_precise_dt = current_dt.replace(microsecond=(current_dt.microsecond // 1000) * 1000)

# 数据库插入操作示例
conn = cx_Oracle.connect("user/pwd@db_host:1521/service_name")
cursor = conn.cursor()
cursor.execute("INSERT INTO your_table (ins_timestamp) VALUES (:ts)", [ms_precise_dt])
conn.commit()

cursor.close()
conn.close()

方法2:用timedelta剔除多余微秒

通过计算微秒部分的余数,用timedelta减去这部分,得到毫秒级时间:

current_dt = datetime.datetime.now()
# 计算需要移除的微秒数(超过毫秒的部分)
excess_micros = datetime.timedelta(microseconds=current_dt.microsecond % 1000)
ms_precise_dt = current_dt - excess_micros

注意事项

  • 确保Oracle表中的ins_timestamp字段类型为TIMESTAMP(而非DATE),因为DATE类型仅支持到秒精度,会自动截断毫秒部分。
  • cx_Oracle会自动完成Python datetime对象与Oracle TIMESTAMP类型的映射,无需额外格式转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:16:11