纳秒转小时分钟格式:SQL查询无法正常运行求助
纳秒转小时分钟/日期时间格式的SQL解决方案
原查询无法运行的核心问题:DATE_FORMAT不支持%N纳秒占位符,且若timestamp_ns是数值型纳秒数,无法直接被日期格式化函数解析。以下是针对不同数据库的可行方案:
一、仅转换为小时:分钟格式
MySQL
如果timestamp_ns是从 epoch 开始的纳秒数值:
SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp_ns / 1000000000), '%H:%i') AS hour_minute FROM information_schema.mv_sysinfo_mem;
- 先将纳秒除以1e9转成秒级时间戳,再用
FROM_UNIXTIME转为日期类型,最后用%H:%i提取小时和分钟。
PostgreSQL
SELECT TO_CHAR(TIMESTAMP 'epoch' + timestamp_ns * INTERVAL '1 nanosecond', '%H:%i') AS hour_minute FROM information_schema.mv_sysinfo_mem;
二、转换为带纳秒的完整日期时间格式
MySQL
手动拼接纳秒部分:
SELECT CONCAT( DATE_FORMAT(FROM_UNIXTIME(timestamp_ns / 1000000000), '%Y-%m-%d %H:%M:%S'), '.', LPAD(MOD(timestamp_ns, 1000000000), 9, '0') ) AS formatted_datetime FROM information_schema.mv_sysinfo_mem;
- 通过
MOD(timestamp_ns, 1000000000)提取纳秒部分,用LPAD补全9位确保格式统一。
PostgreSQL
直接支持纳秒级格式化:
SELECT TO_CHAR(TIMESTAMP 'epoch' + timestamp_ns * INTERVAL '1 nanosecond', '%Y-%m-%d %H:%M:%S.%f') AS formatted_datetime FROM information_schema.mv_sysinfo_mem;
内容的提问来源于stack exchange,提问作者RaviNookala
相关产品推荐
相关产品推荐

