我正在使用以下查询查询postgres sql。我需要四舍五入min(months_between(current_date,somedate))的值

例如:13.83应该是13而不是14,甚至13.9也应该是13。有什么函数可以舍入sparksql中的该值?任何帮助将不胜感激。

最佳答案

您可以使用floor()功能。它舍弃了它的论点。

请注意,floor(x)给出最大的整数≤x。因此floor(5.8)返回5,但floor(-5.8)返回-6。如果您的值可能为负,并且想将其四舍五入,则必须测试其符号并使用floor()ceil()(四舍五入为最大值)。

还要注意,使用int()将浮点数转换为int值会将其舍入为零,无论其符号如何。不确定spark-sql中的实际行为,但它也可以解决您的问题。

07-28 01:25
查看更多