hive sql,年月日 时分秒格式的数据,以15分钟为时间段,找出每一条数据所在时间段的上下界限时间值(15分钟分区)

获取当前的年月日 时分秒
sql 复制代码
select date_format(current_timestamp(), 'yyyy-MM-dd HH:mm:ss')

date_format(时间字段, 'yyyy-MM-dd HH:mm:ss') 将时间字段转为 2023-10-18 18:14:16 这种格式

在指定时间上增加15分钟
sql 复制代码
select from_unixtime(unix_timestamp(current_timestamp(),'yyyy-MM-dd HH:mm:ss') + (15 * 60) , 'yyyy-MM-dd HH:mm:ss')
  • unix_timestamp:获取当前时间的UNIX时间戳(从 1970-01-01 00:00:00 UTC 到指定时间的秒数),然后加上 15*60 秒,即15分钟,就得到了15分钟后的时间戳
  • from_unixtime:将UNIX时间戳转换回当前时区的的时间格式,这里时间格式设置为yyyy-MM-dd HH:mm:ss
时间字段按照15分钟进行分区

我在hive里面有一张表,时间字段为data_time,里面存储的值格式为 2023-10-17 10:32:45

业务需求是15分钟为一个区间,我现在要找到这条数据所在的区间,就比如上面这条数据所在的区间为

2023-10-17 10:30:00

2023-10-17 10:45:00

在hive sql里面的写法为

sql 复制代码
SELECT '2023-10-17 10:32:45',
     concat(substring('2023-10-17 10:32:45',1,14),cast(minute('2023-10-17 10:32:45')/15 as int)*15,':00'),
     from_unixtime(unix_timestamp(concat(substring('2023-10-17 10:32:45',1,14),cast(minute('2023-10-17 10:32:45')/15 as int)*15,':00')) + (15 * 60), 'yyyy-MM-dd HH:mm:ss')

使用时,将'2023-10-17 10:32:45' 替换为你的时间字段,比如data_time即可,上面的sql语句可以直接执行查看结果,用作测试

相关推荐
山峰哥3 小时前
数据库工程与索引策略实战指南‌
服务器·数据库·sql·oracle·深度优先
喜欢的名字被抢了7 小时前
MySQL核心机制:事务、锁与存储引擎
数据库·sql·mysql·教程
阿演10 小时前
DataDjinn v0.2.11:SQL 编辑、AI 协作和表格操作继续打磨
数据库·人工智能·sql
山峰哥12 小时前
‌Explain实战:打开数据库执行计划的黑盒‌
大数据·服务器·数据库·sql·深度优先·宽度优先
RestCloud1 天前
借助ETL工具,实现AI智能体+数据的落地
数据仓库·人工智能·sql·etl·etlcloud·数据集成平台·java脚本
上海云盾-小余1 天前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
AllData公司负责人1 天前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
_Jimmy_1 天前
SQLAlchemy 复杂 SQL 执行指南与模板库
python·sql
2601_954916591 天前
ChatGPT 5.6 深度实践:用 AI 重构云成本治理体系,而不是简单“降本”
人工智能·sql·chatgpt·重构·测试用例
肖永威1 天前
金仓数据库麒麟环境SQL终端使用入门实践(增删改查篇)
数据库·sql·金仓数据库