cn.vonce.sql.define.SqlFun Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vonce-sqlbean-core Show documentation
Show all versions of vonce-sqlbean-core Show documentation
This is the core project of Sqlbean.
The newest version!
package cn.vonce.sql.define;
import cn.vonce.sql.bean.Column;
import cn.vonce.sql.bean.RawValue;
import cn.vonce.sql.enumerate.TimeUnit;
import java.util.Arrays;
import java.util.List;
/**
* Sql函数
*
* @author Jovi
* @email [email protected]
* @date 2022/12/8 15:15
*/
public class SqlFun extends Column {
private String funName;
private Object[] values;
private SqlFun(String funName, Object[] values) {
this.funName = funName;
this.values = values;
}
public String getFunName() {
return funName;
}
public Object[] getValues() {
return values;
}
@Override
public String toString() {
return "SqlFun{" + "funName" + funName + '\'' + ", values=" + Arrays.toString(values) + '}';
}
/**
* 版本(mysql)
*
* @return
*/
public static SqlFun version() {
return new SqlFun("version", null);
}
/**
* 当前数据库(mysql)
*
* @return
*/
public static SqlFun database() {
return new SqlFun("database", null);
}
/**
* 当前用户(mysql)
*
* @return
*/
public static SqlFun user() {
return new SqlFun("user", null);
}
/**
* 返回的结果集中的行数。
*
* @param value
* @return
*/
public static SqlFun count(Object value) {
return new SqlFun("count", new Object[]{value});
}
/**
* 返回的结果集中的行数。
*
* @param value
* @return
*/
public static SqlFun count(ColumnFun value) {
return new SqlFun("count", new Object[]{value});
}
/**
* 用于计算一组值或表达式的平均值。
*
* @param value
* @return
*/
public static SqlFun avg(Object value) {
return new SqlFun("avg", new Object[]{value});
}
/**
* 用于计算一组值或表达式的平均值。
*
* @param value
* @return
*/
public static SqlFun avg(ColumnFun value) {
return new SqlFun("avg", new Object[]{value});
}
/**
* 返回一组值中的最大值。
*
* @param value
* @return
*/
public static SqlFun max(Object value) {
return new SqlFun("max", new Object[]{value});
}
/**
* 返回一组值中的最大值。
*
* @param value
* @return
*/
public static SqlFun max(ColumnFun value) {
return new SqlFun("max", new Object[]{value});
}
/**
* 返回一组值中的最小值。
*
* @param value
* @return
*/
public static SqlFun min(Object value) {
return new SqlFun("min", new Object[]{value});
}
/**
* 返回一组值中的最小值。
*
* @param value
* @return
*/
public static SqlFun min(ColumnFun value) {
return new SqlFun("min", new Object[]{value});
}
/**
* 用于计算一组值或表达式的总和。
*
* @param value
* @return
*/
public static SqlFun sum(Object value) {
return new SqlFun("sum", new Object[]{value});
}
/**
* 用于计算一组值或表达式的总和。
*
* @param value
* @return
*/
public static SqlFun sum(ColumnFun value) {
return new SqlFun("sum", new Object[]{value});
}
/**
* 提取日期或日期时间表达式expr中的日期部分。
*
* @return
*/
public static SqlFun date(Object date) {
return new SqlFun("date", new Object[]{date});
}
/**
* 提取日期或日期时间表达式expr中的日期部分。
*
* @return
*/
public static SqlFun date(ColumnFun date) {
return new SqlFun("date", new Object[]{date});
}
/**
* 返回以"YYYY-MM-DD HH:MM:DD"或"YYYYMMDDHHMMSS.uuuuuuu"格式的字符串或数字返回配置的时区中的当前日期和时间。
*
* @return
*/
public static SqlFun now() {
return new SqlFun("now", null);
}
/**
* 返回当前日期为'YYYY-MM-DD“或YYYYMMDD格式的值。
*
* @return
*/
public static SqlFun curDate() {
return new SqlFun("curDate", null);
}
/**
* 返回当前时间以“HH:MM:SS'或'HHMMSS' 格式的值。
*
* @return
*/
public static SqlFun curTime() {
return new SqlFun("curTime", null);
}
/**
* 返回一个指定日期的年份值,范围为1000到9999,如果日期为零,YEAR()函数返回0。
*
* @param date 合法的日期
* @return
*/
public static SqlFun year(Object date) {
return new SqlFun("year", new Object[]{date});
}
/**
* 返回一个指定日期的年份值,范围为1000到9999,如果日期为零,YEAR()函数返回0。
*
* @param date 合法的日期
* @return
*/
public static SqlFun year(ColumnFun date) {
return new SqlFun("year", new Object[]{date});
}
/**
* 返回日期的月份,取值范围为0〜12。
*
* @param date 合法的日期
* @return
*/
public static SqlFun month(Object date) {
return new SqlFun("month", new Object[]{date});
}
/**
* 返回日期的月份,取值范围为0〜12。
*
* @param date 合法的日期
* @return
*/
public static SqlFun month(ColumnFun date) {
return new SqlFun("month", new Object[]{date});
}
/**
* 返回日期的月份全名。
*
* @param date 合法的日期
* @return
*/
public static SqlFun monthName(Object date) {
return new SqlFun("monthName", new Object[]{date});
}
/**
* 返回日期的月份全名。
*
* @param date 合法的日期
* @return
*/
public static SqlFun monthName(ColumnFun date) {
return new SqlFun("monthName", new Object[]{date});
}
/**
* 返回给定日期的月份的日期部分。
*
* @param date 它是您要获取月份日期的日期值。如果date参数为零,例如'0000-00-00',则DAY函数返回0,如果日期为NULL,则DAY函数返回NULL值。
* @return
*/
public static SqlFun day(Object date) {
return new SqlFun("day", new Object[]{date});
}
/**
* 返回给定日期的月份的日期部分。
*
* @param date 它是您要获取月份日期的日期值。如果date参数为零,例如'0000-00-00',则DAY函数返回0,如果日期为NULL,则DAY函数返回NULL值。
* @return
* @return
*/
public static SqlFun day(ColumnFun date) {
return new SqlFun("day", new Object[]{date});
}
/**
* 返回时间的小时部分。返回值的范围为0至23的小时值。然而,TIME值的范围实际上要大得多,所以HOUR可以返回大于23的值。
*
* @param time 合法的时间
* @return
*/
public static SqlFun hour(Object time) {
return new SqlFun("hour", new Object[]{time});
}
/**
* 返回时间的小时部分。返回值的范围为0至23的小时值。然而,TIME值的范围实际上要大得多,所以HOUR可以返回大于23的值。
*
* @param time 合法的时间
*/
public static SqlFun hour(ColumnFun time) {
return new SqlFun("hour", new Object[]{time});
}
/**
* 返回时间的分钟,范围为0至59。
*
* @return
* @return
* @@param time 合法的时间
*/
public static SqlFun minute(Object time) {
return new SqlFun("minute", new Object[]{time});
}
/**
* 返回时间的分钟,范围为0至59。
*
* @return
* @@param time 合法的时间
*/
public static SqlFun minute(ColumnFun time) {
return new SqlFun("minute", new Object[]{time});
}
/**
* 返回时间秒值,范围为0〜59。
*
* @param time 合法的时间
* @return
*/
public static SqlFun second(Object time) {
return new SqlFun("second", new Object[]{time});
}
/**
* 返回时间的秒,取值范围为0〜59。
*
* @param time 合法的时间
* @return
*/
public static SqlFun second(ColumnFun time) {
return new SqlFun("second", new Object[]{time});
}
/**
* 计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
*
* @param unit 表示差值的单位,可以是以下值之一:MICROSECOND(微秒)、SECOND(秒)、MINUTE(分)、HOUR(小时)、DAY(天)、WEEK(周)、MONTH(月)、QUARTER(季度)或 YEAR(年)
* @param startDate 表示时间段的起始时间
* @param endDate 表示时间段的结束时间
* @return
*/
public static SqlFun timestampDiff(TimeUnit unit, Object startDate, Object endDate) {
return new SqlFun("timestampDiff", new Object[]{unit.name(), startDate, endDate});
}
/**
* 计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
*
* @param unit 表示差值的单位,可以是以下值之一:MICROSECOND(微秒)、SECOND(秒)、MINUTE(分)、HOUR(小时)、DAY(天)、WEEK(周)、MONTH(月)、QUARTER(季度)或 YEAR(年)
* @param startDate 表示时间段的起始时间
* @param endDate 表示时间段的结束时间
* @return
*/
public static SqlFun timestampDiff(TimeUnit unit, ColumnFun startDate, Object endDate) {
return new SqlFun("timestampDiff", new Object[]{unit.name(), startDate, endDate});
}
/**
* 计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
*
* @param unit 表示差值的单位,可以是以下值之一:MICROSECOND(微秒)、SECOND(秒)、MINUTE(分)、HOUR(小时)、DAY(天)、WEEK(周)、MONTH(月)、QUARTER(季度)或 YEAR(年)
* @param startDate 表示时间段的起始时间
* @param endDate 表示时间段的结束时间
* @return
*/
public static SqlFun timestampDiff(TimeUnit unit, ColumnFun startDate, ColumnFun endDate) {
return new SqlFun("timestampDiff", new Object[]{unit.name(), startDate, endDate});
}
/**
* 计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
*
* @param startDate 表示时间段的起始时间
* @param endDate 表示时间段的结束时间
* @return
*/
public static SqlFun dateDiff(Object startDate, Object endDate) {
return new SqlFun("dateDiff", new Object[]{endDate, endDate});
}
/**
* 计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
*
* @param startDate 表示时间段的起始时间
* @param endDate 表示时间段的结束时间
* @return
*/
public static SqlFun dateDiff(ColumnFun startDate, Object endDate) {
return new SqlFun("dateDiff", new Object[]{startDate, endDate});
}
/**
* 计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
*
* @param startDate 表示时间段的起始时间
* @param endDate 表示时间段的结束时间
* @return
*/
public static SqlFun dateDiff(ColumnFun startDate, ColumnFun endDate) {
return new SqlFun("dateDiff", new Object[]{startDate, endDate});
}
/**
* 时间增加
*
* @param date 是DATE或DATETIME的起始值。
* @param num 是一个字符串,用于确定从起始日期增加的间隔值。
* @param unit 是expr可解析的间隔单位,例如DAY,HOUR等.
* @return
*/
public static SqlFun dateAdd(Object date, int num, TimeUnit unit) {
return new SqlFun("date_add", new Object[]{date, new RawValue("interval " + num + " " + unit.name())});
}
/**
* 时间增加
*
* @param date 是DATE或DATETIME的起始值。
* @param num 是一个字符串,用于确定从起始日期增加的间隔值。
* @param unit 是expr可解析的间隔单位,例如DAY,HOUR等.
* @return
*/
public static SqlFun dateAdd(ColumnFun date, int num, TimeUnit unit) {
return new SqlFun("date_add", new Object[]{date, new RawValue("interval " + num + " " + unit.name())});
}
/**
* 时间减少
*
* @param date 是DATE或DATETIME的起始值。
* @param num 是一个字符串,用于确定从起始日期减去的间隔值。
* @param unit 是expr可解析的间隔单位,例如DAY,HOUR等.
* @return
*/
public static SqlFun dateSub(Object date, int num, TimeUnit unit) {
return new SqlFun("date_sub", new Object[]{date, new RawValue("interval " + num + " " + unit.name())});
}
/**
* 时间减少
*
* @param date 是DATE或DATETIME的起始值。
* @param num 是一个字符串,用于确定从起始日期减去的间隔值。
* @param unit 是expr可解析的间隔单位,例如DAY,HOUR等.
* @return
*/
public static SqlFun dateSub(ColumnFun date, int num, TimeUnit unit) {
return new SqlFun("date_sub", new Object[]{date, new RawValue("interval " + num + " " + unit.name())});
}
/**
* 日期类型格式化成指定格式的字符串
*
* @param date 合法的日期
* @param format 规定日期/时间的输出格式
* @return
*/
public static SqlFun date_format(Object date, String format) {
return new SqlFun("date_format", new Object[]{date, format});
}
/**
* 日期类型格式化成指定格式的字符串
*
* @param date 合法的日期
* @param format 规定日期/时间的输出格式
* @return
*/
public static SqlFun date_format(ColumnFun date, String format) {
return new SqlFun("date_format", new Object[]{date, format});
}
/**
* 根据format格式字符串将str字符串转换为日期值。
*
* @param str 合法的字符串日期
* @param format 规定日期/时间的格式
* @return
*/
public static SqlFun str_to_date(Object str, String format) {
return new SqlFun("str_to_date", new Object[]{str, format});
}
/**
* 根据format格式字符串将str字符串转换为日期值。
*
* @param str 合法的字符串日期
* @param format 规定日期/时间的格式
* @return
*/
public static SqlFun str_to_date(ColumnFun str, String format) {
return new SqlFun("str_to_date", new Object[]{str, format});
}
/**
* 判断,类似于三目运算
*
* @param bool 布尔值
* @param trueResult true返回的结果
* @param falseResult false返回到结果
* @return
*/
public static SqlFun iF(Object bool, Object trueResult, Object falseResult) {
return new SqlFun("if", new Object[]{bool, trueResult, falseResult});
}
/**
* 统计字符串的字节数(取决于编码方式,utf8汉字3字节,gbk汉字2字节)
*
* @param str 字符串
* @return
*/
public static SqlFun length(Object str) {
return new SqlFun("length", new Object[]{str});
}
/**
* 统计字符串的字节数(取决于编码方式,utf8汉字3字节,gbk汉字2字节)
*
* @param str 字符串
* @return
*/
public static SqlFun length(ColumnFun str) {
return new SqlFun("length", new Object[]{str});
}
/**
* 拼接字符
*
* @param str 字符串数组
* @return
*/
public static SqlFun concat(Object... str) {
return new SqlFun("concat", str);
}
/**
* 拼接字符
*
* @param separator 分隔符
* @param str 字符串数组
* @return
*/
public static SqlFun concat_ws(String separator, Object... str) {
List
© 2015 - 2024 Weber Informatics LLC | Privacy Policy