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();
|
}
|
}
|