記錄乙個oracle中的坑,暫時還沒有解決
現有一條sql語句,如下結構
select * from table where datetype='1' and to_date(filed,'yyyy-mm-dd')>'2018-2-6'
當where條件裡使用了to_date()函式,那麼這個函式查詢的值會從整個表中 查詢,datetype='1'這個條件會在
to_date()
函式之後執行。
假設table表中資料有datetype='1'和
datetype='0'兩個型別,如果datetype='0'的資料不符合to_date()
函式的格式,
那麼sql就會報錯
有以下幾個問題:
1.sql的執行順序不是應該where條件從左至右嗎,這裡的執行順序被改變與oracle的效能優化有關嗎
2.把其他條件的查詢單獨拎出來,做成乙個子查詢,依舊會有這種情況
3.有沒有什麼辦法可以設定sql語句中每個部分的執行優先順序?
oracle 中 to date 函式的用法
to date 2019 08 12 22 05 yyyy mm dd hh24 mm ss oracle中會引起錯誤 ora 01810 格式 出現兩次 to date sysdate,yyyy mm dd hh24 mi ss d 一周中的星期幾 day 天的名字,使用空格填充到9個字元 dd ...
Oracle常用的函式to date 用法
1 採用 yyyy mm dd hh mm ssora 01810 格式作為格式進行轉換的弊端 在使用oracle的to date函式來做日期轉換時,許多程式設計師會下意識的採用 yyyy mm dd hh mm ss 格式作為格式進行轉換,但是在oracle中會引起錯誤 ora 01810 格式 ...
Oralce中的to date 函式
oralce中的to date 函式用於將字串轉換為日期物件,具體使用格式為 to date string,format mask nls language string1 要轉換的字串.format mask 可選項,日期轉換格式.nls language 可選項.指定用於轉換字串的nls lan...