postgresql - 如何在 PostgreSQL 中获取唯一的日期范围?
问题描述
这是我的数据行:
start_dte | end_dte
------------------------+------------------------
2018-08-01 00:00:00+00 | 2018-08-05 00:00:00+00
2018-08-03 00:00:00+00 | 2018-08-05 00:00:00+00
2018-08-09 00:00:00+00 | 2018-08-10 00:00:00+00
(3 rows)
我想得到这样的结果:
[
'2018-08-01',
'2018-08-02',
'2018-08-03',
'2018-08-04',
'2018-08-05',
'2018-08-09',
'2018-08-10',
]
我怎样才能做到这一点SQL
?谢谢。
解决方案
这可能是解决方案:
select
distinct generate_series(start_date, end_date, '1 day'::interval)::date
from
my_table
order by
generate_series asc;
输出:
generate_series
------------------------
"2018-08-01"
"2018-08-02"
"2018-08-03"
"2018-08-04"
"2018-08-05"
"2018-08-09"
"2018-08-10"
推荐阅读
- python - AttributeError(艰难地学习 Python)
- c# - C# Form Multiline HTML in String 给出错误
- r - 如何修复ggplot2中的X轴编号顺序?
- c# - 使用 c# 从三个组合框中获取日期为 dd/mm/yyyy
- r - 在 R 中找不到函数“knnImputation”
- sql - 在 Laravel Eloquent 中编写此查询的最佳方式是什么?
- android - 如何更改 VPN 弹出对话框权限?
- java - 如何解决“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”?
- reactjs - 在同一个 laravel 应用程序项目中托管 react 应用程序和 laravel 后端(管理面板)
- composer-php - 从 vcs 存储库中找不到包