package com.artfess.base.sqlbuilder; import com.artfess.base.query.QueryOP; import com.artfess.base.util.time.DateFormatUtil; import com.artfess.base.util.JsonUtil; import com.artfess.base.util.StringUtil; import com.fasterxml.jackson.databind.node.ObjectNode; import java.text.ParseException; /** *
* 构建组:x5-base-db * 作者:lyj * 邮箱:liyj@jee-soft.cn * 日期:2014-7-16-下午5:05:36 * 版权:广州宏天软件有限公司版权所有 **/ public class OracleSqlBuilder extends AbstractSqlBuilder { public OracleSqlBuilder() { super(); } @Override // TODO 日期格式已写死- - public void handleDbTypeEqualDate(StringBuffer sql, String field, QueryOP op, Object value, String format) { if (op == QueryOP.BETWEEN) { ObjectNode value1 = (ObjectNode) value; String start = JsonUtil.getString( value1,"start",""); String end = JsonUtil.getString(value1, "end", ""); if(StringUtil.isEmpty(format)){ format="yyyy-mm-dd hh24:mi:ss"; } String newStart=start; String newEnd=end; try { newStart= DateFormatUtil.format(DateFormatUtil.parseDate(start,format).getTime(),format); newEnd=DateFormatUtil.format(DateFormatUtil.parseDate(newEnd,format).getTime(),format); } catch (ParseException e) { newStart=start; newEnd=newEnd; } if (StringUtil.isNotEmpty(newStart)) { sql.append(" and " + field + " " + ">=" + " to_date('" + newStart + "','"+format+"')"); } if (StringUtil.isNotEmpty(newEnd)) { sql.append(" and " + field + " " + "<=" + " to_date('" + newEnd + "','"+format+"')"); } } else { if(StringUtil.isEmpty(format)){ format="yyyy-mm-dd hh24:mi:ss"; } Object newValue=value; try { newValue=DateFormatUtil.format(DateFormatUtil.parseDate(value.toString(),format).getTime(),format); } catch (ParseException e) { newValue=value; } sql.append(" and " + field + " " + op.op() + " to_date('" + newValue.toString() + "','"+format+"')"); } } }