oracle時間過濾
❶ oracle中從一張表中篩選出不再多個時間段內的時間
oracle中從一張表中篩選出不再多個時間段內的時間
建表和插入數據
create table table_a( t1 date, t2 date);
insert into table_a values(to_date('20140501','yyyymmdd') ,to_date('20140503','yyyymmdd'));
insert into table_a values(to_date('20140508','yyyymmdd') ,to_date('20140509','yyyymmdd'));
create table table_b(t date,id int)
insert into table_b values(to_date('20140501','yyyymmdd'),1);
insert into table_b values(to_date('20140502','yyyymmdd'),2);
insert into table_b values(to_date('20140503','yyyymmdd'),3);
insert into table_b values(to_date('20140504','yyyymmdd'),4);
insert into table_b values(to_date('20140505','yyyymmdd'),5);
insert into table_b values(to_date('20140506','yyyymmdd'),6);
insert into table_b values(to_date('20140507','yyyymmdd'),7);
insert into table_b values(to_date('20140508','yyyymmdd'),8);
insert into table_b values(to_date('20140509','yyyymmdd'),9);
insert into table_b values(to_date('20140510','yyyymmdd'),10);
insert into table_b values(to_date('20140511','yyyymmdd'),11);
查詢語句
select * from table_b where t not in(
select distinct b.t from table_b b,table_a a where b.t between a.t1 and a.t2)
❷ oracle 篩選一個時間大於當前時間100個小時的語句
SELECT*FROMTabWHEREtab.date_xx>(SYSDATE-100/24);
❸ Oracle中按照時間范圍以及時間間隔抽取數據的問題
這里TT是指定的時間間隔,單位:秒 下面語句可查出任意給定時間間隔的所有記錄。
select * from tab
where CreateTime between to_date('2012-10-01 01:00:00','yyyy-mm-dd hh24:mi:ss') and
to_date('2012-10-01 12:00:00','yyyy-mm-dd hh24:mi:ss') and
CreateTime in (select to_date('2012-10-01 01:00:00','yyyy-mm-dd hh24:mi:ss')
+TT*rownum/24/60/60 from al
CONNECT BY rownum<=
(to_date('2012-10-01 12:00:00','yyyy-mm-dd hh24:mi:ss')-
to_date('2012-10-01 01:00:00','yyyy-mm-dd hh24:mi:ss'))*24*60*60/TT);
在上面的語句中,下列部分是構造時間間隔的所有可能存在的記錄。每TT秒一條記錄。
(select to_date('2012-10-01 01:00:00','yyyy-mm-dd hh24:mi:ss') +TT*rownum/24/60/60
from al CONNECT BY rownum<=
(to_date('2012-10-01 12:00:00','yyyy-mm-dd hh24:mi:ss')-
to_date('2012-10-01 01:00:00','yyyy-mm-dd hh24:mi:ss'))*24*60*60/TT)
不知道我理解的對不對,僅供參考。
❹ oracle中表中含有的日期欄位如何作為篩選條件
日期需要進行格式匹配之後才能進行條件處理。
date 函數 和 to_date 兩個函數。
❺ Oracle過濾掉無用的日期數據問題
日期強烈不建議使用字元串。。。。。
寫存儲過程可以搞搞
❻ Oracle資料庫中對時間類型欄位的檢索
主要你也沒說根據什麼條件來查
先隨便給你寫個
select*fromAwhere時間起in(select時間起fromAwhere主鍵=1)
❼ oracle中如何篩選時間每天晚上9點之後
select * from test1 where substr9to_char(gxsj,'YYYY-MM-DD hh24:mi:ss'),12,2) > '21';
21是指晚上九點
❽ Oracle Sql 查詢按時分過濾時間區段
SQL>CREATETABLET(KSSJDATE,JSSJDATE);
表已創建。
SQL>INSERTINTOTVALUES(to_date('09:30','HH24:MI'),to_date('11:30','HH24:MI'));
已創建1行。
SQL>COMMIT;
提交完成。
SQL>SELECTTO_CHAR(KSSJ+((ROWNUM-1)/48),'HH24:MI')KSSJ,TO_CHAR(KSSJ+(ROWNUM/48),'HH24:MI')JSSJ
2FROMTCONNECTBYROWNUM<=4;
KSSJJSSJ
----------
09:3010:00
10:0010:30
10:3011:00
11:0011:30
是你說回的意思答不?
❾ Oracle SQL 表中時間篩選的問題,求大神
第一種:直接用語句
date1與date2是字元串
SQL.Tet:='select * from table where 欄位 between '+Quotedstr(date1)+' and '+Quotedstr(date2);
date1與date2是日期專
SQL.Tet:='select * from table where 欄位 between '+Quotedstr(DateTimeToStr(date1))+' and '+Quotedstr(DateTimeToStr(date2));
第二屬種:用參數形式:
SQL.Tet:='select * from table where 欄位 between :d1 and :d2';
Parameters.ParamByName('d1').Value:=date1;
Parameters.ParamByName('d2').Value:=date2;
❿ oracle去除不合法日期
2個辦法:
1. 用游標,逐行進行to_date(datecol,'yyyymmdd'),如果出現exception,則日期格式錯誤。
2. 自己寫一個函數,輸入專日期字元串,輸出1/0
判斷此格屬式的字元串是否是正確的日期,函數中可以:
a. 用to_date(datecol,'yyyymmdd'),如果出現exception,則日期格式錯誤,返回0;否則返回1。
或者
b. 自己進行日期的規則判斷:1年有12個月,各個月有多少天(閏年的2月需要特別處理)
然後update或者delete
比如 delete from table where f_date_validate(datecol) = 0;