Postgresql 如何获得博士后前几个月的成绩

Postgresql 如何获得博士后前几个月的成绩,postgresql,sequelize.js,Postgresql,Sequelize.js,我正在尝试从现在开始获取过去12个月的日期范围 然而,由于月份的天数不同,我想知道是否有可能在数据库级别计算这些日期,或者是否必须计算外部的值并将其作为变量传递 例如,我们在九月,我需要 'september', ["2020-09-01 00:00:00+00","2020-10-01 00:00:00+00"] 'august', ["2020-08-01 00:00:00+00","2020-09-01 00:00:00

我正在尝试从现在开始获取过去12个月的日期范围

然而,由于月份的天数不同,我想知道是否有可能在数据库级别计算这些日期,或者是否必须计算外部的值并将其作为变量传递

例如,我们在九月,我需要

'september', ["2020-09-01 00:00:00+00","2020-10-01 00:00:00+00"]
'august', ["2020-08-01 00:00:00+00","2020-09-01 00:00:00+00"]
'july', ["2020-07-01 00:00:00+00","2020-08-01 00:00:00+00"]
'june', ["2020-06-01 00:00:00+00","2020-07-01 00:00:00+00"]
...
您可以将date_trunc与month参数一起使用,以调整月份之间周数的变化

选择 to_charnow-series.n*“1个月”:“月”间隔为月, tstzrange date_trunc'month',now-series.n*'1 month'::间隔, date_trunc'month',now-series.n-1*'1 month'::间隔, '[]' 作为日期 从…起 选择generate_series0,11作为n AS系列 产生:

'september',["2020-09-01 00:00:00+00","2020-10-01 00:00:00+00"]
'august', ["2020-08-01 00:00:00+00","2020-09-01 00:00:00+00"]
'july', ["2020-07-01 00:00:00+00","2020-08-01 00:00:00+00"]
'june', ["2020-06-01 00:00:00+00","2020-07-01 00:00:00+00"]
'may', ["2020-05-01 00:00:00+00","2020-06-01 00:00:00+00"]
'april', ["2020-04-01 00:00:00+00","2020-05-01 00:00:00+00"]
'march', ["2020-03-01 00:00:00+00","2020-04-01 00:00:00+00"]
'february', ["2020-02-01 00:00:00+00","2020-03-01 00:00:00+00"]
'january', ["2020-01-01 00:00:00+00","2020-02-01 00:00:00+00"]
'december', ["2019-12-01 00:00:00+00","2020-01-01 00:00:00+00"]
'november', ["2019-11-01 00:00:00+00","2019-12-01 00:00:00+00"]
'october', ["2019-10-01 00:00:00+00","2019-11-01 00:00:00+00"]
您可以将date_trunc与month参数一起使用,以调整月份之间周数的变化

选择 to_charnow-series.n*“1个月”:“月”间隔为月, tstzrange date_trunc'month',now-series.n*'1 month'::间隔, date_trunc'month',now-series.n-1*'1 month'::间隔, '[]' 作为日期 从…起 选择generate_series0,11作为n AS系列 产生:

'september',["2020-09-01 00:00:00+00","2020-10-01 00:00:00+00"]
'august', ["2020-08-01 00:00:00+00","2020-09-01 00:00:00+00"]
'july', ["2020-07-01 00:00:00+00","2020-08-01 00:00:00+00"]
'june', ["2020-06-01 00:00:00+00","2020-07-01 00:00:00+00"]
'may', ["2020-05-01 00:00:00+00","2020-06-01 00:00:00+00"]
'april', ["2020-04-01 00:00:00+00","2020-05-01 00:00:00+00"]
'march', ["2020-03-01 00:00:00+00","2020-04-01 00:00:00+00"]
'february', ["2020-02-01 00:00:00+00","2020-03-01 00:00:00+00"]
'january', ["2020-01-01 00:00:00+00","2020-02-01 00:00:00+00"]
'december', ["2019-12-01 00:00:00+00","2020-01-01 00:00:00+00"]
'november', ["2019-11-01 00:00:00+00","2019-12-01 00:00:00+00"]
'october', ["2019-10-01 00:00:00+00","2019-11-01 00:00:00+00"]

我需要的是月份日期而不是周,我编辑了这个问题以删除周中误导性的部分,我正在尝试获取上一周的日期范围12months@bihireboris您应该编辑问题,以发布您试图生成的结果表。另外,在generate_series0,3中,您可以将3更改为一个更大的数字,这将产生更多的周和范围。请您查看编辑,我输入了我需要的范围类型我需要的是月日期而不是周,我编辑了问题以删除周中误导性的部分,我正在尝试获取上一次的日期范围12months@bihireboris您应该编辑问题,以发布您试图生成的结果表。另外,在generate_series0,3中,您可以将3更改为一个更大的数字,这将产生更多的周数和范围。请您查看编辑,我将需要的范围类型放入其中