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

Spark Timestamp格式时间戳如何通过SQL计算差值?

Spark SQL 时间戳差值计算方案

场景1:列为原生Timestamp存储类型

原生Timestamp类型支持直接做差值运算,如需返回指定单位的数值结果,使用TIMESTAMPDIFF函数即可:

-- 示例:计算end_ts和start_ts的差值,单位为秒
SELECT TIMESTAMPDIFF(SECOND, start_ts, end_ts) AS diff_second
FROM 你的表名;

可选单位包括:MICROSECOND(微秒)、MILLISECOND(毫秒)、SECOND(秒)、MINUTE(分钟)、HOUR(小时)、DAY(天)、WEEK(周)、MONTH(月)、YEAR(年),按需替换函数第一个参数即可。

场景2:列为String存储类型

你给出的2021-08-26T11:14:08.251Z属于标准ISO 8601格式字符串,Spark SQL的to_timestamp函数可直接识别转换,无需额外指定格式模板,转换完成后再调用TIMESTAMPDIFF计算差值即可:

-- 示例:转换字符串为Timestamp后计算毫秒级差值
SELECT TIMESTAMPDIFF(MILLISECOND, to_timestamp(start_ts_str), to_timestamp(end_ts_str)) AS diff_millisecond
FROM 你的表名;

类型校验方法

如果不确定列的存储类型,可运行以下查询查看表结构确认:

DESCRIBE 你的表名;

查看对应时间列的type字段,显示timestamp即为原生类型,显示string即为字符串类型。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:15:03