常見需求:查詢某一天的資料。關鍵在於將日期欄位轉為不含時分秒的字串比對。
TO_CHAR(date_col, 'YYYY-MM-DD') -- 年-月-日 TO_CHAR(date_col, 'YYYY-MM-DD HH24:MI:SS') -- 含時分秒
LPAD(col, len, 'char') 左填充RPAD(col, len, 'char') 右填充SUBSTR(str, start, [len]) 擷取子字串-- 查 2014-12-05 全天資料 SELECT * FROM table_name t WHERE TO_CHAR(t.column_name, 'YYYY-MM-DD') = '2014-12-05'; -- 取前 100 筆 SELECT * FROM ( SELECT * FROM table_name t WHERE TO_CHAR(t.column_name, 'YYYY-MM-DD') = '2014-12-05' ) WHERE ROWNUM <= 100;
column_name 有索引,上述寫法會導致全表掃描(函數阻礙索引)。WHERE column_name >= TO_DATE('2014-12-05','YYYY-MM-DD')
AND column_name < TO_DATE('2014-12-06','YYYY-MM-DD')