如何在Snowflake中将特殊格式小时值转换为分钟数?
在Snowflake中将特殊格式小时值转换为总分钟数
转换逻辑
你的数据格式是整数部分代表小时数,小数部分直接代表分钟数(例如2.52对应2小时52分钟),转换总分钟数的核心逻辑为:
总分钟数 = 小时数 × 60 + 分钟数
Snowflake SQL实现
假设存储该数值的字段名为hour_min_val(数值类型),可以用以下SQL直接计算总分钟数:
SELECT hour_min_val, -- 拆分小时和分钟并计算总分钟数 TRUNC(hour_min_val) * 60 + (hour_min_val - TRUNC(hour_min_val)) * 100 AS total_minutes FROM your_table_name;
如果字段是字符串类型,需要先转换为数值型后再计算:
SELECT hour_min_str, TRUNC(TO_NUMERIC(hour_min_str)) * 60 + (TO_NUMERIC(hour_min_str) - TRUNC(TO_NUMERIC(hour_min_str))) * 100 AS total_minutes FROM your_table_name;
示例验证
对给出的测试值计算结果如下:
2.52→ 2×60 + 52 = 172分钟3→ 3×60 + 0 = 180分钟3.63→ 3×60 + 63 = 243分钟3.33→ 3×60 + 33 = 213分钟2.94→ 2×60 + 94 = 214分钟2.52→ 172分钟
内容的提问来源于stack exchange,提问作者Lion
相关产品推荐
相关产品推荐

