在Snowflake中将时间列转换为12小时制格式(如08:00:00 AM)
在Snowflake中转换时间为12小时制格式
1. 转换单个时间值
使用Snowflake的TO_CHAR函数,指定HH12:MI:SS AM格式符即可将单个时间值转换为12小时制带AM/PM标识的格式:
SELECT TO_CHAR(TIME '08:00:00', 'HH12:MI:SS AM') AS formatted_time;
执行后会输出:08:00:00 AM。若输入下午时间(如14:00:00),会自动转换为02:00:00 PM。
2. 转换整列数据
假设你的表名为your_table,待转换的时间列名为original_time,可以直接在查询中生成转换后的列:
SELECT original_time, TO_CHAR(original_time, 'HH12:MI:SS AM') AS formatted_time_12h FROM your_table;
如果需要将转换后的数据持久化到表中(新增一列存储12小时制字符串),可执行以下操作:
-- 新增用于存储格式化结果的字符串列 ALTER TABLE your_table ADD COLUMN formatted_time STRING; -- 更新列数据 UPDATE your_table SET formatted_time = TO_CHAR(original_time, 'HH12:MI:SS AM');
注意:
TO_CHAR会将TIME类型转换为STRING类型,适合展示场景;若需保留时间的计算属性,建议仍用TIME/TIMESTAMP类型存储,仅在查询时做格式转换。
内容的提问来源于stack exchange,提问作者Princy
相关产品推荐
相关产品推荐

