SQL分析样例
unix timestmap格式化
场景 1 :使用strftime
格式化时间戳
例子1:格式化_time
为类似2024-03-11 15:17:48
这样的字符串。
SELECT
strftime(_time, '%Y-%m-%d %T') AS str_time,
_time
FROM
_internal
查询分析结果:
str_time | _time |
---|---|
2024-03-11 15:17:48 | 2024-03-11T15:17:48.973+08:00 |
2024-03-11 15:17:48 | 2024-03-11T15:17:48.972+08:00 |
例子2:格式化_time
为类似2024-03-11 15:29:12 +0000
这样的字符串。其中%z
为 UTC 时间偏移量的数字表示。
SELECT
strftime(_time, '%Y-%m-%d %T %z') AS str_time,
_time
FROM
_internal
查询分析结果:
str_time | _time |
---|---|
2024-03-11 15:29:12 +0800 | 2024-03-11T15:29:12.508+08:00 |
2024-03-11 15:29:12 +0800 | 2024-03-11T15:29:12.507+08:00 |
场景 2 : 使用strptime
将时间戳字符串转换成时间戳
例子1:字符串类型字段str_time
为符合格式类似2021-07-09 14:34:50
这样的时间戳字符串,通过strptime
将其转换成时间戳格式。
SELECT
strptime(str_time, '%Y-%m-%d %T') AS _time,
str_time
FROM
_internal
样例转换结果:
例子2:字符串类型字段str_time
为符合格式类似“2021-07-09 14:34:50”这样的时间戳字符串,时区分别为 UTC 时区、上海时区和默认时区,通过strptime
将其转换成时间戳格式。
SELECT
strptime(str_time, '%Y-%m-%d %T', 'UTC') as utc_ts,
strptime(str_time, '%Y-%m-%d %T', 'Asia/Shanghai') as sh_ts,
strptime(str_time, '%Y-%m-%d %T') as default_ts
From
_internal
样例转换结果:
把数据按照日期分桶,进行聚类统计
思路:使用strftime
将时间戳格式化为日期字符串,然后再进行聚类。
例子1:统计每周的事件数量。%Y-%U
是把时间格式化为当年的第几周。
WITH base AS (
SELECT
strftime(_time, '%Y-%U') AS year_week
FROM
showroom_data
)
SELECT
COUNT(*) AS event_count,
year_week
FROM
base
GROUP BY
year_week
查询分析结果:
例子2:统计每月的事件数量。%Y-%m
是把时间格式化为年和月。
WITH base AS (
SELECT
strftime(_time, '%Y-%m') AS year_month
FROM
showroom_data
)
SELECT
COUNT(*) AS event_count,
year_month
FROM
base
GROUP BY
year_month
查询分析结果: