python cx_Oracle插入TIMESTAMP字段后显示格式问题?
高洛峰
高洛峰 2016-11-09 13:25:16
0
1
1176

目标: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)


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(1)
三叔

在 stackoverflow上找到方法;
基本上是这样就可以了;
db_types = (d[1] for d in db1_cursor.description)
db2_cursor.setinputsizes(*db_types)

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template