Как напечатать CURRENT_TIMESTAMP в PostgreSQL на Python? - PullRequest
0 голосов
/ 27 июня 2019

Я использую ключевое слово CURRENT_TIMESTAMP psycopg2, чтобы назначить атрибут creationDate моего объекта SQL:

def createDuck(data):
""" Creates a new ducky in the Duck table. """

keys = ['color', 'species', 'numberOfFeathers', 'creationDate']
# Insert all values except the last one because it's the date
dataToInsert = [data.get(k) for k in keys[:-1] ]

with transaction() as (conn, cur):
    query = sql.SQL('INSERT INTO {} ({}) VALUES ({}, CURRENT_TIMESTAMP) RETURNING id;').format(
        sql.Identifier('Duck'),
        sql.SQL(', ').join(map(sql.Identifier, keys )),
        sql.SQL(', ').join(map(sql.Literal, dataToInsert))
    ) 
    cur.execute(query)
    return cur.fetchone()['id']

Пока все хорошо, выполнение этого фрагмента кода создает утку, а creationDate выглядит как дата: 2019-06-26 14:29:23.480065+00

Теперь мне нужно создать утку как объект python с данными из моей таблицы SQL Duck.

Итак, я вызываю всех своих уток, помещаю их в список, и для каждой записи в списке я создаю своего двойника-питона:

def getAllDucks(self):
        with transaction() as (conn,cur):
            query = sql.SQL('SELECT * FROM {};').format(
                sql.Identifier('Ducks')
            )
            cur.execute(query)
            ducksInTable = cur.fetchall()
            listOfDucks = []
            for row in ducksInTable:
                ducky = Duck(dict(row))
                listOfDucks.append(ducky)                
            return listOfDucks

Однако проблема в том, что когда я печатаю все атрибуты своих уток, creationDate теперь выглядит так:

datetime.datetime(2019, 6, 26, 14, 29, 23, 480065, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))

Теперь я понимаю, CURRENT_TIMESTAMP - это специальное ключевое слово PostgreSQL. Но мне нужно, чтобы моя дата отображалась в моем списке Python, как это выглядит в таблице SQL.

Есть ли способ отобразить creationDate, как это выглядит в PostgreSQL при печати моего списка уток Python?

Я думал о печати своей собственной функции, но я был бы удивлен, если бы такая функция еще не существовала в python.

...