postgresql - 计算两个日期之间每个月的天数 - postgresql
问题描述
我正在尝试编写一个查询,它给出两个指定日期之间每个月的天数。
例子:
日期1:2018-01-01
日期2:2018-05-23
预期输出:
month days
2018-01-01, 31
2018-02-01, 28
2018-03-01, 31
2018-04-01, 30
2018-05-01, 23
解决方案
使用generate_series
和group by date_trunc
SELECT date_trunc('month',dt) AS month,
COUNT(*) as days
FROM generate_series( DATE '2018-01-01',DATE '2018-05-23',interval '1 DAY' )
as dt group by date_trunc('month',dt)
order by month;
推荐阅读
- python-3.x - JupyterLab - 导入模块
- ruby-on-rails - 如何将 json 数据解析为厨师食谱属性
- reactjs - 我如何解决“动作必须是普通对象。使用自定义中间件进行异步操作。”?
- python - Python List - 过滤特定的文本元素并丢弃剩余的
- php - isMethod 不起作用
- operating-system - 在不复制的情况下交换两个文件中的内容
- vba - 在 Excel 中使用宏替换列标题文本
- testing - PhpStorm 从测试源中排除文件夹
- python - 防止 numpy 将数值向上转换为字符串
- jquery - 在内联可编辑剑道网格中实现类似于 Excel 的“向下复制”功能