sql - 在 where 条件下使用 MAX 函数获取时间
问题描述
嗨,我有一个表格,每 5 秒插入一次新行。下面是我用来获取最大 index_end_time 的每个索引 ID 的最新记录的查询。
现在我需要检查是否有任何记录的 MAX(INDEX_END_TIME) 比当前系统时间戳超过 5 分钟。
像下面这样的东西
SELECT count(INDEX_ID)
FROM PS8BPMDB.BPM_TASK_INDEX_JOB
GROUP BY INDEX_ID
HAVING MAX(INDEX_END_TIME) > SYS_EXTRACT_UTC(SYSTIMESTAMP)UTC_SYS - 5 minutes;
解决方案
要对数据类型的列进行计算,TIMESTAMP
您需要使用INTERVAL
数据类型。
SELECT count(INDEX_ID)
FROM PS8BPMDB.BPM_TASK_INDEX_JOB
GROUP BY INDEX_ID
HAVING MAX(INDEX_END_TIME) > systimestamp - interval '5' minute;
推荐阅读
- java - Jboss Server 以独立模式运行,但已定义服务器组
- javascript - 如何在某些按钮按下时清除输入值?
- c# - 计算每周点击次数的统计数据
- python - 使用 Python 从网页下载 csv 文件
- loops - 使用 Ansible 循环变量
- linux - 在 Linux 中查找 maxdepth 2 的文件并移动到相应的文件夹
- tensorflow - 代码=StatusCode.UNAVAILABLE,详细信息=“操作系统错误”
- linux - 是否只搜索距我执行搜索的位置至少两级深的文件?
- python - Scrapy 进程未成功爬取
- node.js - Socket.io 发出一次时连续显示消息