Skip to main content
 首页 » 编程设计

python之将 Python 日期时间插入 DATE 类型的 Oracle 列

2025年05月04日16sxdcgaq8080

我正在尝试将 Python 日期时间对象存储在日期类型的 ORACLE 列中。

到目前为止,我用过,

rpt_time = time.strftime('%Y-%m-%d %H:%M:%S') or 
rpt_time = str(datetime.datetime.now()) 

但都给出 ORA-01843: 不是有效的月份

我真的很困惑如何插入ORACLE日期类型的python datetime对象

请您参考如下方法:

cx_Oracle 支持传递类 datetime.datetime 的对象。因此,当您已经拥有此类的对象时(例如调用 datetime.datetime.now() 时),您不应尝试将其格式化并作为字符串传递,而应直接传递。这样您就可以防止因日期和/或时间格式错误而导致的所有错误。

例子:

cursor.execute("INSERT INTO SomeTable VALUES(:now)", {'now': datetime.datetime.now()}) 

请注意,如果要防止秒的小数部分被截断,则必须采取额外的步骤。详情请看Mastering Oracle+Python, Part 2: Working with Times and Dates Przemysław Piotrowski 的文章。