python - 是否可以通过将当月的天数减少到 1 来从 SQLAlchemy 中的日期时间中提取一个月,以便在图表中绘制数据?
问题描述
我知道可以从 sqlalchemy 中的日期时间中提取一个月作为整数:
func.extract('month', datetime)
但是是否可以在 Postgres 数据库中将日期时间的天数更改为该月的 1,以便在图表中绘制数据,如下所示:
func.strftime(datetime, '%Y-%m')
哪个不适用于 Postgres 数据库?
我试过了:
func.to_char
但我需要获取日期时间或至少按月或周分组的日期,以便在图表中随时间推移绘制数据,除非我做错了什么,否则这似乎没有得到日期时间。有任何想法吗?
我知道它将日期时间更改为字符串,但由于某种原因,func.strftime 用于使用 SQLite 绘制图形,但 func.char 不适用于 Postgres。
我是否必须为周、月和年创建 3 个单独的列,然后将它们组合成一个日期时间,以便绘制我需要按周或月分组的数据图?
解决方案
有几种方法可以解决这个问题,具体取决于您使用的数据库。我已经为 postgres 和 mysql 提供了一个解决方案来演示:
Postgres:
# Can be used to truncate a datetime value according to any interval
func.date_trunc('month', date_col)
mysql:
# This reformats to the nearest month
# you can manually format to the first day of the month
func.date_format(date_col, '%Y-%m-01')
推荐阅读
- python - 如何用python找到我的弹丸运动范围?
- python - 从 python Popen 运行 IDL .pro?
- excel - 使用 LEFT OUTER JOIN 的 SQL 查询语法错误
- azure - 如何在 Common Data Service 中进行批量插入?
- python - 返回彼此相等的两个数组的值的索引的最快方法是什么?
- azure - Azure Notification Hub compatible with Service Workers?
- javascript - 访问 this.state 后如何确保 setState 调用已经执行?
- tinymce - TinyMCE 插件文件选择器替换?
- javascript - 我无法在网络扩展中使用 express 和 fetch
- javascript - async fn 的模块导出结果