首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

oracle查询一个月固定时刻的数据

发布网友 发布时间:2022-04-23 21:47

我来回答

3个回答

热心网友 时间:2023-07-06 11:28

-- 2个字段
-- 处理日期时间, 处理结果。
CREATE TABLE temp(
process_date DATE,
result_val INT
);

-- 测试数据
-- 计划是查询 每天的 12:00 的数据
-- 主要的测试数据,在 6月3日-6月5日 期间
-- 6月3日的数据,为一个当日 小于 12:00 的数据。
-- 6月4日的数据,为一个当日 大于 12:00 的数据。
-- 6月5日的数据,为两个当日 大于/小于 12:00 的数据。
-- 6月6日的数据,为多个当日 随便填写的 数据。
INSERT INTO temp
SELECT TO_DATE('2011-06-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), 100 FROM al UNION ALL
SELECT TO_DATE('2011-06-02 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), 100 FROM al UNION ALL
SELECT TO_DATE('2011-06-03 06:00:00', 'YYYY-MM-DD HH24:MI:SS'), 106 FROM al UNION ALL
SELECT TO_DATE('2011-06-04 18:00:00', 'YYYY-MM-DD HH24:MI:SS'), 118 FROM al UNION ALL
SELECT TO_DATE('2011-06-05 11:00:00', 'YYYY-MM-DD HH24:MI:SS'), 111 FROM al UNION ALL
SELECT TO_DATE('2011-06-05 12:59:59', 'YYYY-MM-DD HH24:MI:SS'), 113 FROM al UNION ALL
SELECT TO_DATE('2011-06-06 10:00:00', 'YYYY-MM-DD HH24:MI:SS'), 210 FROM al UNION ALL
SELECT TO_DATE('2011-06-06 11:00:05', 'YYYY-MM-DD HH24:MI:SS'), 211 FROM al UNION ALL
SELECT TO_DATE('2011-06-06 13:00:00', 'YYYY-MM-DD HH24:MI:SS'), 213 FROM al UNION ALL
SELECT TO_DATE('2011-06-06 15:00:00', 'YYYY-MM-DD HH24:MI:SS'), 215 FROM al;

ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';

SELECT
process_date,
result_val
FROM
(
SELECT
process_date,
result_val,
MIN(process_date)
KEEP (DENSE_RANK FIRST ORDER BY ABS((process_date - (TRUNC(process_date) + 1/2))) )
OVER (PARTITION BY TO_CHAR(process_date, 'YYYY-MM-DD')) AS "最接近12点的时间"
FROM
temp
) myTmp
WHERE
myTmp.process_date = myTmp."最接近12点的时间"

PROCESS_DATE RESULT_VAL
------------------- ----------
2011-06-01 12:00:00 100
2011-06-02 12:00:00 100
2011-06-03 06:00:00 106
2011-06-04 18:00:00 118
2011-06-05 12:59:59 113
2011-06-06 11:00:05 211

已选择6行。

注:那个当天12:00的算法为
(TRUNC(process_date) + 1/2)
也就是把日期后面时分秒都清零,最后加上 1/2 天。也就是 12:00

热心网友 时间:2023-07-06 11:29

可以用触发器啊

热心网友 时间:2023-07-06 11:29

呃……好像之前回答过你另外的问题? = =!
几个问题不太清楚:
1、插入操作是怎么执行的?是SQL导入还是程序调用?
2、在做增删操作时,有没有查询之类的需求?
3、插入删除操作必须在一个事务里面吗?
4、表的总记录数有多少?

下班先回去了,要不明天你HI我吧。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com