Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLAlchemy:格式化db.DateTime()列结果_Datetime_Python 3.x_Sqlalchemy - Fatal编程技术网

SQLAlchemy:格式化db.DateTime()列结果

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,

我有一个相对简单的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,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]