我正在使用以下查询查询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中的实际行为,但它也可以解决您的问题。