ORACLE中查询时间点前后一分钟的数据

我首先在ORACLE某张表中,查询大于2012年09月01日01点00分00秒,并且最小的时间datestart。而后用此时间点,在数据库中查询,datestart前后一... 我首先在ORACLE某张表中,查询大于2012年09月01日 01点00分00秒,并且最小的时间datestart。
而后用此时间点,在数据库中查询,datestart前后一分钟、(datestart+15minutes)t前后一分钟、(datestart+30minutes)t前后一分钟、(datestart+45minutes)t前后一分钟的所有数据。请问怎么实现
展开
 我来答
匿名用户
2013-03-29
展开全部
SELECT

表.*
FROM
表,
(
-- 这个子查询, 用于查询大于2012年09月01日 01点00分00秒,并且最小的时间datestart
SELECT
MIN( datestart ) AS datestart
FROM 表
WHERE datestart > TO_DATE( '2012090101', 'YYYYMMDDHH24' )
) MinDate
WHERE
-- datestart前后一分钟
表.datestart BETWEEN (MinDate.datestart - 1/24/60) AND (MinDate.datestart + 1/24/60)

-- 前面相同
-- datestart前后15分钟

表.datestart BETWEEN (MinDate.datestart - 15/24/60) AND (MinDate.datestart + 15/24/60)

-- 前面相同
-- datestart前后30分钟
表.datestart BETWEEN (MinDate.datestart - 30/24/60) AND (MinDate.datestart + 30/24/60)

-- 前面相同
-- datestart前后45分钟
表.datestart BETWEEN (MinDate.datestart - 45/24/60) AND (MinDate.datestart + 45/24/60)
今至电子科技有限公司
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整... 点击进入详情页
本回答由今至电子科技有限公司提供
badkano
推荐于2018-05-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部
你还是列举几条数据吧
并且把你想要的结果也最好做个简单的图出来,太抽象了
更多追问追答
追问



医院用的床旁监护仪,每2到3分钟分钟会往数据库发一条数据。

但是我只想看到,以监护仪接通电源后,发出的的第一条数据的时间为起始时间dtestart,

每60分钟采集4条数据。

但因为是2到3分钟间隔不等,所以并不保证起始时间后的每15分钟,都会正好有数据。

请问怎么实现

追答
譬如时间如你说的2012年09月01日 01点00分00秒
--这个是起始时间前后一分钟的所有
select * from 表名 where to_char(datestart,'yyyymmddhh24miss') between to_char(datestart-1/3600,'yyyymmddhh24miss') and to_char(datestart+1/3600,'yyyymmddhh24miss');

--15分
select * from 表名 where to_char(datestart,'yyyymmddhh24miss') between to_char(datestart+14/3600,'yyyymmddhh24miss') and to_char(datestart+16/3600,'yyyymmddhh24miss');

--半小时
select * from 表名 where to_char(datestart,'yyyymmddhh24miss') between to_char(datestart+29/3600,'yyyymmddhh24miss') and to_char(datestart+31/3600,'yyyymmddhh24miss');

--45分
select * from 表名 where to_char(datestart,'yyyymmddhh24miss') between to_char(datestart+44/3600,'yyyymmddhh24miss') and to_char(datestart+46/3600,'yyyymmddhh24miss');

是这个意思吗?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式