Vertica与PostgreSQL中的计算不同

Vertica与PostgreSQL中的计算不同,sql,postgresql,vertica,Sql,Postgresql,Vertica,我有一个疑问: SELECT CAST(((stats.ts_spawn - 1427835600) / 86400) * 86400 + 1427835600 AS INTEGER) AS anon_1 FROM stats WHERE stats.ts_spawn > 1427835600 AND stats.ts_spawn < 1428440399 GROUP BY anon_1 order by anon_1; Vertica从一周中每天的每小时开始返回: 14278

我有一个疑问:

SELECT CAST(((stats.ts_spawn - 1427835600) / 86400) * 86400 + 
1427835600 AS INTEGER) AS anon_1 FROM stats WHERE stats.ts_spawn > 
1427835600 AND stats.ts_spawn < 1428440399 GROUP BY anon_1 order by anon_1;
Vertica从一周中每天的每小时开始返回:

1427839200
1427842800
1427846400
1427850000
... and so on, total 167 records(24 * 7 - 1)

我不知道如何修改这个查询。

第二个查询显然会导致浮点而不是除法中的整数。在本文中,我们可以看到:

Vertica 6版本在使用/运算符除法整数时引入了行为更改


如果您希望查询在两个系统上的行为相同,请更改该文档中提到的配置选项,或者对除法结果使用Floor函数。

让我猜猜:时区差异似乎是3600?顺便说一句:也许你可以用date函数date\u trunc date\u部分来代替?似乎存储在时间戳中可以节省很多工作
1427839200
1427842800
1427846400
1427850000
... and so on, total 167 records(24 * 7 - 1)