提取并重新格式化PostgreSQL查询输出(python)

时间:2018-11-08 17:42:32

标签: python-3.x postgresql

我正在用asyncpg查询PostgreSQL数据库。我的查询正在检查一个表,以确定是否存在特定的记录号。如果记录存在,则从该记录中提取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 :(得分:2)

尝试一下:

import datetime

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

阅读文档strftime,了解更多信息。

答案 1 :(得分:0)

我通过以下方法解决了这个问题:

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')