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前后一分钟的所有数据。请问怎么实现 展开
而后用此时间点,在数据库中查询,datestart前后一分钟、(datestart+15minutes)t前后一分钟、(datestart+30minutes)t前后一分钟、(datestart+45minutes)t前后一分钟的所有数据。请问怎么实现 展开
2个回答
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)
表.*
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 广告
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整...
点击进入详情页
本回答由今至电子科技有限公司提供
展开全部
你还是列举几条数据吧
并且把你想要的结果也最好做个简单的图出来,太抽象了
并且把你想要的结果也最好做个简单的图出来,太抽象了
更多追问追答
追问
追答
譬如时间如你说的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');
是这个意思吗?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询