将 pyodbc.Row 对象转换为标量(例如日期时间)值?

问题描述 投票:0回答:1

我有 Sql 服务器并使用 pyodbc 进行处理,问题是,当我查询表日期时间列时,结果不是我想要的格式,但是这个:

(datetime.datetime(2017, 3, 20, 8, 0), )

我喜欢得到的是这样的格式:

2017-03-20 08:00

问题是我收到了

'pyodbc.Row'
类型。我喜欢做的是:

  1. 将其转换为日期时间
  2. 或者将其转换为字符串,以便我可以将字符串转换为日期时间。
  3. 或者如果可以保留所有转换并以不同格式打印原始结果,那就太好了。

目前我可以将其转换为字符串,但从 (datetime.datetime(2017, 3, 20, 8, 0), ) 字符串中选取日期片段并将其转换为日期时间是一个相当好的解决方法。

python datetime pyodbc
1个回答
0
投票

pyodbc

.fetchall()
返回 pyodbc
Row
对象的列表。所以我们会得到这样的东西

results = crsr.fetchall()
print(results)
# [(datetime.datetime(2001, 1, 1, 0, 0),), (datetime.datetime(2002, 2, 2, 0, 0),)]

如果我们想要一个标量值列表(在本例中只是

datetime
对象),只需这样做

results = [row[0] for row in crsr.fetchall()]
print(results)
# [datetime.datetime(2001, 1, 1, 0, 0), datetime.datetime(2002, 2, 2, 0, 0)]
© www.soinside.com 2019 - 2024. All rights reserved.