首页 > 解决方案 > 从列中查找 15 分钟的时间间隔

问题描述

我正在尝试使用以下查询从使用 sql 的列中创建 15 分钟的时间间隔:

Select from_unixtime(FLOOR(UNIX_TIMESTAMP(date_format(from_unixtime(unix_timestamp(InitiatedDateTimeGmt, 'MM/dd/yyyy hh:mm:ss a')),'yyyy-dd-MM HH:mm:ss'))/(15*60))*(15*60)) GroupTime,
COUNT(*) as Cnt
FROM Chat
GROUP BY GroupTime order by 1 

其中 InitiatedDateTimeGmt 是时间戳格式的列名,例如 2021-01-04 00:00:00。

但是我得到了很多值为空的值。

例子:

小组时间 计数
无效的 335783
2021-01-04 00:00:00 68
2021-01-04 00:15:00 81
2021-01-04 00:30:00 74
2021-01-04 00:45:00 81
2021-01-04 01:00:00 94
2021-01-04 01:15:00 98

我做错什么了吗?

标签: apache-sparkapache-spark-sql

解决方案


它是通过使用以下查询来解决的:

    Select from_unixtime(FLOOR(UNIX_TIMESTAMP(date_format(from_unixtime(unix_timestamp(InitiatedDateTimeGmt, 'MM/dd/yyyy hh:mm:ss a')),'yyyy-MM-dd HH:mm:ss'))/(15*60))*(15*60)) GroupTime, COUNT(*) as Cnt FROM Chat GROUP BY GroupTime order by 1 

推荐阅读