You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ksqldb中从时间戳提取小时、分钟、秒的整数值

ksqlDB时间分量提取相关问题解答

完全可以实现你要的需求,ksqlDB原生就提供了和MySQL用法高度相似的时间提取函数,不用额外写自定义逻辑。

核心可用函数

直接调用内置的HOUR()、MINUTE()、SECOND()函数即可,传入合法的TIMESTAMP类型值,就会返回对应范围的整数值:

  • HOUR():返回0-23范围的小时整数
  • MINUTE():返回0-59范围的分钟整数
  • SECOND():返回0-59范围的秒整数

你举的示例在ksqlDB中可以直接写:

SELECT HOUR(TIMESTAMP '2023-01-01 22:59:01') FROM 你的流/表名 EMIT CHANGES LIMIT 1;

执行后返回结果就是整数22,和MySQL的HOUR()函数行为完全一致。

自定义格式时间戳的处理

如果你的时间戳是存储为MM/dd/yyyy hh:mm:ss a格式的字符串,需要先转成TIMESTAMP类型再提取:
用内置的PARSE_TIMESTAMP()函数先做格式转换,示例代码如下:

SELECT
  HOUR(PARSE_TIMESTAMP('MM/dd/yyyy hh:mm:ss a', '10/15/2023 09:45:30 PM')) AS hour_val,
  MINUTE(PARSE_TIMESTAMP('MM/dd/yyyy hh:mm:ss a', '10/15/2023 09:45:30 PM')) AS minute_val,
  SECOND(PARSE_TIMESTAMP('MM/dd/yyyy hh:mm:ss a', '10/15/2023 09:45:30 PM')) AS second_val
FROM 你的流/表名
EMIT CHANGES LIMIT 1;

上述语句执行后会分别返回21、45、30三个整数值。

注意事项

  • 如果你的时间字段在建流/表的时候已经指定为TIMESTAMP类型,直接套对应的提取函数即可,不需要额外转换
  • PARSE_TIMESTAMP的第一个格式参数要和你实际的时间字符串格式完全匹配,否则会返回空值或报错

内容的提问来源于stack exchange,提问作者tommy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:12:01