在開發sql時,過濾日期段是經常遇到的情況,如何高效的過濾出日期段?本文通過實驗進行驗證:
方法
一、通過to_char將日期轉換成字串進行比較
to_char(cr.contractenddate, 'yyyy-mm-dd') >= '2014-11-13'
and to_char(cr.contractenddate, 'yyyy-mm-dd') <= '2015-11-19'
耗時:0.171s
方法
二、通過to_date將字串轉換成日期進行比較
cr.contractenddate >= to_date('2014-11-13', 'yyyy-mm-dd')
and cr.contractenddate <= to_date('2015-11-19', 'yyyy-mm-dd')
耗時:0.093s
方法
三、通過資料庫關鍵字between and 進行比較
cr.contractenddate
between to_date('2014-11-13', 'yyyy-mm-dd') and to_date('2015-11-19', 'yyyy-mm-dd')
耗時:0.078s
總結:方法一耗時體現在需要逐個比較字串的每個字元;
方法二耗時體現在》= 和<=;
推薦使用方法三
Oracle資料庫日期過濾方法效能比較
方法 一 通過to char將日期轉換成字串進行比較 to char cr.contractenddate,yyyy mm dd 2014 11 13 and to char cr.contractenddate,yyyy mm dd 2015 11 19 耗時 0.171s 方法 二 通過to d...
ORACLE資料庫日期型別
sysdate 返回作業系統中的當前日期和時間。current date 會話的時區中的系統日期 systimestamp 報告timestamp資料型別格式的系統日期 add months sysdate,6 新增月份 add months sysdate,6 減少月份 months betwee...
oracle資料庫 日期函式用法
oracle資料庫 日期函式用法 oracle trunc 函式的用法 日期 1.select trunc sysdate from dual 2013 01 06 今天的日期為2013 01 06 2.select trunc sysdate,mm from dual 2013 01 01 返回當...