我正在尝试CONV()在Snowflake中找到与MySQL函数等效的函数,但似乎找不到。
CONV()
我正在尝试在Snowflake中执行以下操作:
SELECT CONV('39ix75wf3aor7',36,10)
结果应该是 15468921890196183763
15468921890196183763
我编写了一个UDF以完成CONV()的工作。它可以工作,但是不幸的是,JavaScript变量不支持与样本一样大的数值精度。
这将适用于较小的输入,但是对于较大的Base36输入,会发生以下情况:
15468921890196183763-应该是这个结果
15468921890196185000 –JavaScript本机变量不具有该精度级别
如果您发现较小的值从一个基数转换为另一个基数很有用,这里是:
create or replace function CONV(VALUE_IN string, OLD_BASE float, NEW_BASE float) returns string language javascript as $$ // Usage note: Loses precision for very large inputs return parseInt(VALUE_IN, Math.floor(OLD_BASE).toString(Math.floor(NEW_BASE))); $$;