首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 指定日期查詢:TO_CHAR 與字串函數應用

     編輯:Oracle 教學

Oracle 指定日期查詢:TO_CHAR 與字串函數應用

常見需求:查詢某一天的資料。關鍵在於將日期欄位轉為不含時分秒的字串比對。

1. TO_CHAR 日期格式化

TO_CHAR(date_col, 'YYYY-MM-DD')       -- 年-月-日
TO_CHAR(date_col, 'YYYY-MM-DD HH24:MI:SS') -- 含時分秒

2. 字串填充與擷取

  • LPAD(col, len, 'char') 左填充
  • RPAD(col, len, 'char') 右填充
  • SUBSTR(str, start, [len]) 擷取子字串

3. 查詢指定日期資料

-- 查 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')
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved