如何从timestamp(6) without timezone类型时间戳中提取hh:mm:ss
提取timestamp(6) without timezone字段的时分秒部分
你的需求是从timestamp(6) without timezone类型字段中提取hh:mm:ss部分,针对PostgreSQL场景,有两种直接可行的实现方法:
方法1:使用TO_CHAR()格式化函数
通过指定格式模板,将timestamp类型直接转为目标格式的字符串,完全匹配你的期望输出:
SELECT TO_CHAR(your_timestamp_column, 'HH:MI:SS') AS time_part FROM your_table;
- 模板
HH会保留小时的原始位数(个位数显示为单数字,两位数显示为双数字) MI和SS分别对应分钟和秒,始终以两位数显示
测试你的示例数据,返回结果:
0:00:00 10:00:00 04:00:00
方法2:直接转换为time类型
将timestamp字段强制转换为time类型,会自动剥离日期部分,只保留时分秒信息:
-- 写法1 SELECT CAST(your_timestamp_column AS time) AS time_part FROM your_table; -- 写法2(PostgreSQL简化语法) SELECT your_timestamp_column::time AS time_part FROM your_table;
该方法返回的结果格式与方法1完全一致,同样满足需求。
内容的提问来源于stack exchange,提问作者Heisenberg
相关产品推荐
相关产品推荐

