ibatis中oracle timestamp 条件查询特别是包括当天的内容

本文详细介绍了如何在iBATIS中使用特定的XML标签来实现日期筛选,并解释了如何在实体类中进行相应调整,以确保前台页面输入的时间格式(如'YYYY-MM-DD')能够正确地与数据库进行匹配。包括对start_date和end_date属性的特殊处理,以便在查询时自动补全缺失的时间部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 在ibatis中可以这样实现:

<isNotEmpty prepend=" and " property="start_date">
      <![CDATA[T.CREATED_TIME>=to_date('$start_date$','YYYY-MM-DD hh24:mi:ss')]]>
  </isNotEmpty>
  <isNotEmpty prepend=" and " property="end_date">
   <![CDATA[T.CREATED_TIME<=to_date('$end_date$','YYYY-MM-DD hh24:mi:ss')]]>
  </isNotEmpty>

但是最重要的是要在实体类中进行变化,因为通常我们在前台页面对start_date选择的参数是'YYYY-MM-DD这样类型,而没有时分秒,因此需要在实体类中进行变化如:

private String start_date;

private String end_date;

public void setModified_time(String modifiedTime) {
  modified_time = modifiedTime;
 }
 public String getStart_date() {
  if (null != start_date && !start_date.trim().equals("")) {
   return start_date + " 00:00:00";
  }
  return null;
 }
 public void setStart_date(String startDate) {
  start_date = startDate;
 }
 public String getEnd_date() {
  if (null != end_date && !end_date.trim().equals("")) {
   return end_date + " 23:59:59";
  }
  return null;
 }
 public void setEnd_date(String endDate) {
  end_date = endDate;
 }