今天在做乙個資料查詢的時候接觸到了物化檢視,第一次使用,進行了一番研究,這裡不做描述,物化檢視中同事寫了這樣一行**:
to_date(concat(to_char( sysdate+1,'dd-mm-yyyy'),'00:30:00'),'dd-mm-yyyy hh24:mi:ss')
目標:取當前日期的00:30分。
1、select to_date(to_char(sysdate,'yyyy-mm-dd')||'00:30','yyyy-mm-dd hh24:mi') from dual;
2、select to_date(concat(to_char( sysdate,'yyyy-mm-dd'),'00:30:00'),'yyyy-mm-dd hh24:mi:ss') from dual;
3、select trunc(sysdate)+(1/24/60)*30 from dual;
上面總共三種寫法,前兩種原理一樣,都是發日期格式化成字串,然後新增00:30後再轉為日期格式,後一種是直接對日期格式進行加減。
總結:1、2可以更方便的設定查詢的條件,而3需要計算,但1、2涉及兩次格式轉換,資料量較大時耗時會增加,效率上3比1、2高。
在少量資料查詢時用那個都差不多,資料量比較大查詢較慢的時候可以優先考慮3.
oracle之date 查詢效能優化
建立測試表 created table test id varchar2 20 not null,dtime date 插入6000000資料 declare i number k number begin k 0 for i in 1 6000000 loop insert into test i...
Oracle資料庫Date型別查詢問題
oracle資料庫date型別查詢問題 用過oracle資料庫的朋友應該知道,oracle資料庫在以date型別為查詢條件時存在乙個小小的bug,如 select from tablename where createdate to date 2007 01 01 yyyy mm dd and cr...
Oracle判斷查詢 date欄位查詢
select from 表 where to char 字段,yyyymmdd 20180426 這乙個例子就可以詮釋全部的date型別查詢,核心思想就是to char 字段,yyyymmdd 把date欄位日期轉換成字串作比較,20180426 字串的含義2018年04月26日,你也可以精確到毫秒...