Mybatis中處理Oracle時間類型是個比較麻煩的問題,特別是需要用到時間做比較的,可參考以下代碼與思路:
- 格式化CST時間
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
- CST時間轉換成字符串,實體中為date類型的
toString()
轉換即可
String dateStr = "Mon Sep 02 00:00:00 CST 2019";
- CST時間字符串轉換為Date類型
Date date = (Date) sdf.parse(dateStr);
- Date類型轉換為常用時間類型字符串
String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
- 拿到時間字符串后就可以在sql中來處理了,如:
<if test="formatStr != null and formatStr != ''">
and XXX >= to_date('${formatStr }','yyyy-MM-dd hh24:mi:ss')
</if>
java mybatis XML
文件中不允許出現">"
、"<"
之類的符號,>
是">"
的轉義