Вставьте TIMESTAMP в миллисекундах в Oracle с помощью cx_Oracle и Python 3.6 - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужно вставить метку времени с миллисекундами в таблицу Oracle с Python 3.6 и cx_Oracle 6.4.1. Вставка сделана хорошо, но я теряю миллисекунды в пути.

Отметка времени передается как объект datetime. Любые идеи, как я мог бы сохранить миллисекунды, не делая to_timestamp () в самом SQL? Я хотел бы передать дату и время в транзакции SQL. Я использую executemany (), так как идея состоит в том, чтобы вставлять несколько записей одновременно.

import cx_Oracle
import datetime

conf = {
    'username': 'USERNAME',
    'password': 'PASSWORD',
    'tns': 'TNS'
}

d = datetime.datetime.now()
print(d)

db_conn = cx_Oracle.connect(conf['username'], conf['password'], conf['tns'], encoding='UTF-8', nencoding='UTF-8')
cursor = db_conn.cursor()

sql_insert = "INSERT INTO {} VALUES {}".format('timestamp_test', '(:1)')
cursor.prepare(sql_insert)
cursor.executemany(None, [[d]])
db_conn.commit()

enter image description here

enter image description here

...