關於Ibatis 轉換 oracle date型別的問題
最近遇到兩個關於Ibatis 轉換date型別的問題,記錄一下:
sql_text:
select distinct t.cc from aa t
where t.update_time > :1 and t.update_time < :2
Optimizer Plan:
-----------------------------------------------------------------------------------------------------------
| Operation | Name | Rows | Bytes| Cost | Pstart| Pstop |
------------------------------------------------------------------------------------------------------------
| SELECT STATEMENT | | | | 226780 | | |
| HASH UNIQUE | | 5K| 72K| 226780 | | |
| FILTER | | | | | | |
| TABLE ACCESS FULL |AA | 69K| 949K| 226774 | | |
------------------------------------------------------------------------------------------------------------
開始一看以為是沒建索引,但是發現索引是存在的,同時explain plan 發現走的也是正確的執行計劃。
懷疑是統計資訊的問題,於是重新收集了統計資訊,並重新生成了執行計劃,但是還是同樣的。因為那天通宵了一夜,
頭腦比較暈,沒明白是怎麼回事。
回家後仔細看了一下v$sql_plan ,發現如下資訊:
(INTERNAL_FUNCTION("S"."UPDATE_TIME")>=:1 AND INTERNAL_FUNCTION("S"."UPDATE_TIME")<:2>
表示oracle對這個欄位做了轉換後再去比較,於是懷疑應用裡的型別不對,開發同事提供瞭如下sql,雖然他傳入配置檔案的屬性是date型。
但是IbatiS並沒有轉換成oracle能識別的date型:
select distinct t.cc from aa t
where t.update_time > #startTimeStr# and t.update_time < #endTimeStr#
於是通知開發修改語句:
update_time >= to_date(#startTimeStr#,'yyyy-mm-dd hh24:mi:ss') and update_time < to_date(#endTimeStr#,'yyyy-mm-dd hh24:mi:ss')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758322/viewspace-714469/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於mysql字元和數字型別轉換的問題研究MySql字元型別
- Double型別轉換成BigDicimal問題型別
- tp5.0 的模型型別轉換問題模型型別
- 【關於Javascript】--- 隱式型別轉換篇JavaScript型別
- 關於maven import org.apache.ibatis.io.Resources中ibatis包不存在問題MavenImportApacheBAT
- 關於int型別數值的運算問題型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- ibatis中integer型別BAT型別
- SQL Server中datetimeset轉換datetime型別問題淺析SQLServer型別
- Oracle date 型別比較和String比較Oracle型別
- js轉換/Date(........)/JS
- 型別轉換型別
- 【Hive】日期從整形轉為Date型別Hive型別
- interface{} 型別的轉換型別
- golang的型別轉換Golang型別
- 關於 PHP 不同資料型別在比較時該如何轉化問題PHP資料型別
- 資料型別,型別轉換資料型別
- 關於影像識別的問題
- js型別轉換JS型別
- 型別轉換(cast)型別AST
- Convert型別轉換型別
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- mysql bigint型別和datetime型別的轉換MySql型別
- Java String和Date的轉換Java
- java中的型別轉換Java型別
- 【轉】ORACLE資料型別Oracle資料型別
- Oracle vs PostgreSQL,研發注意事項(7)- 型別轉換OracleSQL型別
- SpringBoot 通過Converter轉化 date型別引數Spring Boot型別
- C++中string轉換為char*型別返回後亂碼問題C++型別
- 解決巢狀list型別的JSONObject/JSONArray轉換成原來list問題。巢狀型別JSONObject
- [20191001]關於oracle number型別的一些疑惑.txtOracle型別
- 【型別轉換】使用c#實現簡易的型別轉換(Emit,Expression,反射)型別C#MITExpress反射
- Oracle中Date和Timestamp的區別Oracle
- Java資料型別及型別轉換Java資料型別
- 關於Java中進位制轉換以及位運算問題Java
- JNI常用型別轉換型別
- 容器,型別轉換。List。型別
- c++ 型別轉換C++型別
- 型別轉換注意點型別