Oracle 查詢之date型別資料格式化

2022-04-29 15:57:12 字數 631 閱讀 3834

今天在做乙個資料查詢的時候接觸到了物化檢視,第一次使用,進行了一番研究,這裡不做描述,物化檢視中同事寫了這樣一行**:

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日,你也可以精確到毫秒...