Postgresql Postgres Generate_系列返回错误数量的结果

Postgresql Postgres Generate_系列返回错误数量的结果,postgresql,generate-series,Postgresql,Generate Series,我想使用Postgres的generate_series()生成一系列时间戳,但它返回了错误的结果数: select generate_series( now() - interval '1 year', now(), interval '1 year' / 365 ); 我期望365个结果,但它返回371个结果 结果中的每一个间隔都不到一天,但我不知

我想使用Postgres的
generate_series()
生成一系列时间戳,但它返回了错误的结果数:

select generate_series(
                 now() - interval '1 year',
                 now(),
                 interval '1 year' / 365
                     );
我期望365个结果,但它返回371个结果

结果中的每一个间隔都不到一天,但我不知道为什么

2017-10-21 19:21:01.355108
2017-10-22 19:01:17.761508
2017-10-23 18:41:34.167908
2017-10-24 18:21:50.574308
2017-10-25 18:02:06.980708
2017-10-26 17:42:23.387108

间隔“1年”不等于365天,因此您收到的行数超过365行。 我假设您希望每天都有一系列从1年前到现在的邮戳>

select generate_series(
             now() - interval '1 year' ,
             now(),
             interval '1 day'
                );
您将收到366行,而不是365行,因为您正好在1年前开始,所以它将是366个时间戳(1年前是系列的开始日期+365[或366,如果年份是闰年]的下一天)


如果希望它没有第一个时间戳,请在第一个参数中添加“interval'1 day'”。

interval'1 year'不等于365天,这就是为什么您会收到超过365行。 我假设您希望每天都有一系列从1年前到现在的邮戳>

select generate_series(
             now() - interval '1 year' ,
             now(),
             interval '1 day'
                );
您将收到366行,而不是365行,因为您正好在1年前开始,所以它将是366个时间戳(1年前是系列的开始日期+365[或366,如果年份是闰年]的下一天)

如果希望它没有第一个时间戳,那么在第一个参数中添加“interval'1 day'”