SQLAlchemy:格式化db.DateTime()列结果
我有一个相对简单的SQLAlchemy查询(在MySQL数据库上): 查询的列的类型为SQLAlchemy:格式化db.DateTime()列结果,datetime,python-3.x,sqlalchemy,Datetime,Python 3.x,Sqlalchemy,我有一个相对简单的SQLAlchemy查询(在MySQL数据库上): 查询的列的类型为db.DateTime() 现在我想在my_date中格式化返回的日期: my_date.isoformat() # fails my_date.strftime("%Y-%m-%d %H:%M:%S %z") # fails 我得到的这个对象是什么?要得到一个可以格式化的datetime对象,我必须做些什么? 当我使用调试器检查返回的对象时,我会看到以下内容:(datetime.datetime(2016,
db.DateTime()
现在我想在my_date
中格式化返回的日期:
my_date.isoformat() # fails
my_date.strftime("%Y-%m-%d %H:%M:%S %z") # fails
我得到的这个对象是什么?要得到一个可以格式化的datetime对象,我必须做些什么?
当我使用调试器检查返回的对象时,我会看到以下内容:(datetime.datetime(2016,1,28,12,35,17))
-但是真正的Python datetime.datetime对象在调试器中看起来不同
dir(my_date)
返回以下内容:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__',
'__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__',
'__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__',
'_asdict', '_fields', '_real_fields', 'count', 'index', 'keys']
one()
将结果返回为
你可以用
或者从元组中获取值
my_date = db.session.query(func.max(MyTable.date_column)).one()[0]
SQLAlchemy文档中没有提到这一点-人们怎么知道这一点?你确定它是“KeyedTuple”吗?我只获取类型
{result}
类型(我的日期)
返回sqlalchemy.util.\u collections.KeyedTuple
。教程()说查询返回的元组是命名元组,由KeyedTuple类提供。看起来我们使用了不同的版本,因为我的系统上的type(my_date)
返回
Yes,它在sqlalchemy 0.9.9中返回sqlalchemy.util.\u collections.KeyedTuple
,在1.0.10中返回sqlalchemy.util.\u collections.result
。它看起来像同一个类,但我不知道为什么它被命名为result
。
my_date = db.session.query(func.max(MyTable.date_column)).scalar()
my_date = db.session.query(func.max(MyTable.date_column)).one()[0]