如何在Snowflake中编写查询将秒数转换为天、时、分、秒
Snowflake SQL:将秒数转换为天、时、分、秒格式
以下是可在Snowflake中执行的SQL查询,能将指定秒数转换为X天,X小时,X分钟,X秒的中文格式,适配示例中的输出要求:
WITH input_seconds_cte AS ( -- 替换为你的目标秒数或字段,例如从表中读取:SELECT your_second_column FROM your_table SELECT 259321 AS target_seconds ) SELECT COALESCE( CONCAT_WS(',', CASE WHEN days > 0 THEN days || '天' END, CASE WHEN hours > 0 THEN hours || '小时' END, CASE WHEN minutes > 0 THEN minutes || '分钟' END, CASE WHEN seconds > 0 THEN seconds || '秒' END ), '0秒' ) AS 转换后时间 FROM ( SELECT FLOOR(target_seconds / 86400) AS days, FLOOR((target_seconds % 86400) / 3600) AS hours, FLOOR((target_seconds % 3600) / 60) AS minutes, target_seconds % 60 AS seconds FROM input_seconds_cte );
逻辑说明:
- 计算各时间单位:
- 天数:总秒数除以
86400(一天的秒数)取整 - 小时数:总秒数取余
86400后,除以3600(一小时的秒数)取整 - 分钟数:总秒数取余
3600后,除以60(一分钟的秒数)取整 - 秒数:总秒数取余
60
- 天数:总秒数除以
- 拼接结果:使用
CONCAT_WS仅拼接非空的时间单位部分(避免出现“0天”这类无效内容) - 边界处理:用
COALESCE处理秒数为0的情况,输出0秒
示例验证:
输入秒数259321时,查询输出为:3天,2分钟,1秒,与示例要求一致。
内容的提问来源于stack exchange,提问作者Jeyavel
相关产品推荐
相关产品推荐

