如何在 sqlalchemy 查询中将日期时间更改为字符串? [复制]
Posted
技术标签:
【中文标题】如何在 sqlalchemy 查询中将日期时间更改为字符串? [复制]【英文标题】:how to change datetime to string in sqlalchemy query? [duplicate] 【发布时间】:2017-02-18 23:35:23 【问题描述】:这是我的代码,查询 Notification.create_time
result = session.query(
Notification.content, cls.is_read,
Notification.create_time).join(
cls, Notification.id == cls.notification).filter(
and_(cls.user == user_id)).order_by(
Notification.create_time.desc()).all()
在其他地方需要json.dumps查询结果到前端,datetime格式不能json.dumps,所以我想这样做:
session.query(Notification.create_time.strftime('%Y-%m-%d %H:%M'))
那么,如何在 sqlalchemy 查询中将日期时间更改为字符串?
【问题讨论】:
那是特定于数据库的。例如,Postgresql 使用to_char
进行时间戳格式化,您可以使用sqlalchemy.func
调用它。但是(imo)更好的解决方案是use a JSON serializer that handles datetime
objects。
你太棒了,非常感谢。我的想法走错路了。XD
【参考方案1】:
可以使用func.to_char()
(在postgres中,不确定mysql)将日期时间转换为字符串,例如:
from sqlalchemy.sql import func
session.query(func.to_char(Notification.create_time, '%Y-%m-%d %H:%M'))
但更好的方法是设置您的 json 序列化程序来处理日期时间之类的事情,as is described in this answer
【讨论】:
你太棒了。谢谢你变化很大~~~~~~~~ 这种格式在 Postgres 中对我有用 'Dy, DD Mon YYYY HH:MM:SS' 它也适用于 Oracle。谢谢你:) Oracle 使用的值如下:techonthenet.com/oracle/functions/to_date.php 是的,对我来说格式正确 func.to_char(User.birthday, 'YYYY-MM-DD')以上是关于如何在 sqlalchemy 查询中将日期时间更改为字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# Nest 中将日期值发送到 elasticsearch 聚合查询