Извлечь и переформатировать вывод запроса PostgreSQL (python) - PullRequest
0 голосов
/ 08 ноября 2018

Я запрашиваю базу данных PostgreSQL с помощью asyncpg. Мой запрос проверяет таблицу, чтобы определить, существует ли конкретный номер записи. Если запись существует, то из этой записи извлекается информация date_modified, которую мне нужно сравнить с вновь собранной датой.

Моя текущая проблема - попытка извлечь информацию о метке времени из списка, который возвращается запросом, показанным ниже:

[<Record date_modified=datetime.datetime(2010, 9, 9, 8, 33, 31)>]

Единственный способ получения строки даты, который я нашел, - с помощью регулярного выражения.

 date_modified = re.search(r'(\d{4},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2})',  repr(date_check))

 print (date_modified.group(0))

 outputs: 2010, 9, 9, 8, 33, 31

Как преобразовать вышеприведенный вывод в этот формат?

2010-09-09 08:33:31

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Я решил эту проблему следующим образом:

date_modified = re.search(r'(\d{4},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2})',  repr(date_check))
reformattedDate = datetime.datetime.strptime(date_modified.group(0), '%Y, %m, %d, %H, %M, %S').strftime('%Y-%m-%d %H:%M:%S')
0 голосов
/ 08 ноября 2018

Попробуйте это:

import datetime

In [1465]: datetime.datetime.strftime(date_modified,'%Y-%m-%d %H:%M:%S')
Out[1465]: '2010-09-09 08:33:31'

Прочитайте документ strftime для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...