我有一个相对简单的SQLAlchemy查询(在MySQL数据库上):
my_date = db.session.query(func.max(MyTable.date_column)).one()
查询列的类型为db.DateTime()
。
现在我想在my_date
中格式化返回的日期:
my_date.isoformat() # fails
my_date.strftime("%Y-%m-%d %H:%M:%S %z") # fails
我得到的这个对象是什么,我需要做些什么才能获得可以格式化的日期时间对象?
当我使用调试器检查返回的对象时,我看到以下内容:(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']
答案 0 :(得分:1)
one()
将结果返回为KeyedTuple。
您可以使用scalar()
my_date = db.session.query(func.max(MyTable.date_column)).scalar()
或从元组中获取价值
my_date = db.session.query(func.max(MyTable.date_column)).one()[0]