Athena引擎3中double precision转varchar如何避免科学计数法?
Athena引擎3中避免科学计数法转换double到varchar的方案
Athena引擎3支持to_char函数,这是format()的理想替代方案,专门用于将数值类型格式化为指定样式的字符串,能够彻底避免科学计数法的输出。
针对你的需求,将原SQL中的format()替换为to_char()即可,指定合适的格式模板来控制输出:
select to_char( round(abs(0.972) * pow(10, 2 - ceil(ln(abs(0.972)) / ln(10))), 0) / pow(10, 2 - ceil(ln(abs(0.972)) / ln(10))), 'FM999999999.99' );
格式模板说明:
FM:去除输出字符串的前导空格,让结果更简洁;9:代表一位数字,若该位没有数字则不显示;.99:指定保留两位小数,可根据实际需求调整小数位数(比如.999保留三位);- 前面的
9数量可根据你处理的数值范围调整,避免数值位数超出时出现格式错误。
如果需要处理整数或可变小数位数的场景,也可以灵活调整模板,例如:
- 处理整数:
to_char(123, 'FM999999')返回'123' - 保留三位小数:
to_char(0.1234, 'FM999999.999')返回'0.123'
内容的提问来源于stack exchange,提问作者Azima
相关产品推荐
相关产品推荐

