Postgresql Postgres Generate_系列返回错误数量的结果
我想使用Postgres的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个结果 结果中的每一个间隔都不到一天,但我不知
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'”