python cx_Oracle插入TIMESTAMP字段后显示格式问题?

发布于 2022-09-04 02:38:27 字数 811 浏览 11 评论 0

目标:A张表内有个 TIMESTAMP 字段,需要读取后插入到B表中;

问题:使用 cx_Oracle模块读取该字段时显示为 datetime.datetime(2016, 9, 1, 0, 0, 1, 288000) 样式;
使用 executemany 方法插入B表后,再次读取B表的该字段,显示为 datetime.datetime(2016, 9, 1, 0, 0, 1)
后面的毫秒单位消失了;
求解如何再插入后,保留后面的毫秒单位;
但是用 execute 方式插入,则格式正常,求解,非常感谢!

大致代码

sql_a = ''' SELECT HOSTURL,GETTIME,CPUUSERAGE,CPUSYSUSAGE,CPUIOUSAGE,CPUFREERATE,CREATE_DT,FLAG FROM PC_MONITOR_CPU_TX '''
ck_oracle.execute(sql_a)
data = ck_oracle.fetchall()

sql = "insert into PC_MONITOR_CPU_MX(HOSTURL,GETTIME,CPUUSERAGE,CPUSYSUSAGE,CPUIOUSAGE,CPUFREERATE,CREATE_DT,FLAG) values (\
    :HOSTURL,:GETTIME,:CPUUSERAGE,:CPUSYSUSAGE,:CPUIOUSAGE,:CPUFREERATE,:CREATE_DT,:FLAG)"

ck_oracle.executemany(sql,data)

ck_oracle.execute(sql_a)
data = ck_oracle.fetchall()
print(data)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

逆夏时光 2022-09-11 02:38:27

等了一会儿,发现这个问题居然没有发布,找了半天都找不到怎么发布问题;
然后在 stackoverflow上找到了方法;
基本上是这样就可以了;
db_types = (d[1] for d in db1_cursor.description)
db2_cursor.setinputsizes(*db_types)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文