요 결과 agants 준비 간격에 가입 할 수 있습니다 예 :
t=# select starts,starts+'3 month'::interval ends,mod(ord,4) from generate_series('2015-10-01'::date,'2018-10-01'::date,'3 month'::interval) with ordinality t(starts,ord);
starts | ends | mod
------------------------+------------------------+-----
2015-10-01 00:00:00+00 | 2016-01-01 00:00:00+00 | 1
2016-01-01 00:00:00+00 | 2016-04-01 00:00:00+00 | 2
2016-04-01 00:00:00+00 | 2016-07-01 00:00:00+00 | 3
2016-07-01 00:00:00+00 | 2016-10-01 00:00:00+00 | 0
2016-10-01 00:00:00+00 | 2017-01-01 00:00:00+00 | 1
2017-01-01 00:00:00+00 | 2017-04-01 00:00:00+00 | 2
2017-04-01 00:00:00+00 | 2017-07-01 00:00:00+00 | 3
2017-07-01 00:00:00+00 | 2017-10-01 00:00:00+00 | 0
2017-10-01 00:00:00+00 | 2018-01-01 00:00:00+00 | 1
2018-01-01 00:00:00+00 | 2018-04-01 00:00:00+00 | 2
2018-04-01 00:00:00+00 | 2018-07-01 00:00:00+00 | 3
2018-07-01 00:00:00+00 | 2018-10-01 00:00:00+00 | 0
2018-10-01 00:00:00+00 | 2019-01-01 00:00:00+00 | 1
(13 rows)
여기서 나머지 수는 semestres의 수로 나누어서 학기 수를 구할 수 있습니다. 물론 0을 다루어야합니다. 4를 부르거나 jus를 1 학기에서 시작하여 mod(ord,4)+1
을 사용하거나을 사용한다.등)
나는이 접근법을 사용하여 끝냈다. 날짜 계열을 생성하기가 쉬웠습니다. 감사! – Ivan