package com.product.data.center.utils; import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; import java.util.Date; /** * Copyright © 6c * * @Date 2022年07月13日 17:55 * @Author 6c * @Description */ public class SqlTransferUtil { public static final String MINUTE = "minute"; /** * 字符串转为时间 * @param dbType 数据库库类型 0 ORACLE 1 MYSQL 2 SQLSERVER 3 INFORMIX * @param date * @return */ public static String str2Date(int dbType, Object date) { if (dbType == -1 || date == null) { return ""; } String dateStr; if (date instanceof Date) { dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); } else { dateStr = date.toString(); } StringBuilder result = new StringBuilder(32); if (dbType == 0) { result.append(" TO_DATE('").append(dateStr).append("','yyyy-mm-dd hh24:mi:ss')"); } else if (dbType == 1) { result.append(" str_to_date('").append(dateStr).append("','%Y-%m-%d %H:%i:%s')"); } else { result.append("暂不支持的数据库类型"); } return result.toString(); } /** * 日期加减 * @param dbType 数据库类型 * @param dateStr 日期字符串,需要先经过str2Date方法的处理 * @param value 值,正数为增加,负数为减少 * @param unit 单位 * @return */ public static String addDate(int dbType, String dateStr, int value, String unit) { if (dbType == -1 || StringUtils.isEmpty(dateStr)) { return ""; } StringBuilder result = new StringBuilder(32); if (dbType == 0) { result.append(" ").append(dateStr).append("+(").append(value).append(")"); if (MINUTE.equals(unit)) { result.append("/(24*60)"); } } else if (dbType == 1) { result.append(" date_add(").append(dateStr).append(",interval ").append(value).append(" ").append(unit).append(")"); } else { result.append("暂不支持的数据库类型"); } return result.toString(); } }