lubejs-mssql
Version:
The lubejs driver for mssql.
215 lines (214 loc) • 7.92 kB
TypeScript
import { MssqlSqlifier } from './sqlifier';
import { Binary, XExpression, Condition, DbType, Expression, Numeric, Scalar, Star, ScalarFromDbType, VirtualTranslator, Field, Sort } from 'lubejs/core';
export declare class MssqlVirtualTranslator implements VirtualTranslator {
private readonly sqlifier;
constructor(sqlifier: MssqlSqlifier);
currentDatabase(): Expression<string>;
defaultSchema(): Expression<string>;
rownum(orders: Sort[], partitions?: Field<any, string>): Expression<number>;
abs<T extends Numeric>(value: XExpression<T>): Expression<T>;
exp<T extends Numeric>(value: XExpression<T>): Expression<T>;
ceil<T extends Numeric>(value: XExpression<T>): Expression<T>;
floor<T extends Numeric>(value: XExpression<T>): Expression<T>;
ln<T extends Numeric>(value: XExpression<T>): Expression<T>;
log<T extends Numeric>(value: XExpression<T>): Expression<T>;
pi(): Expression<number>;
power<T extends Numeric>(a: XExpression<T>, b: XExpression<Numeric>): Expression<T>;
radians<T extends Numeric>(value: XExpression<T>): Expression<T>;
degrees<T extends Numeric>(value: XExpression<T>): Expression<T>;
random(): Expression<number>;
round(value: XExpression<Numeric>, s: XExpression<Numeric>): Expression<Numeric>;
sign<T extends Numeric>(value: XExpression<T>): Expression<T>;
sqrt(value: XExpression<number>): Expression<number>;
cos(value: XExpression<number>): Expression<number>;
sin(value: XExpression<number>): Expression<number>;
tan(value: XExpression<number>): Expression<number>;
acos(value: XExpression<number>): Expression<number>;
asin(value: XExpression<number>): Expression<number>;
atan(value: XExpression<number>): Expression<number>;
atan2(value: XExpression<number>): Expression<number>;
cot(value: XExpression<number>): Expression<number>;
nvl<T extends Scalar>(value: XExpression<T>, defaultValue: XExpression<T>): Expression<T>;
count(expr: Star | XExpression<Scalar>): Expression<number>;
avg(expr: XExpression<Numeric>): Expression<Numeric>;
sum(expr: XExpression<Numeric>): Expression<Numeric>;
max<T extends Exclude<Scalar, Binary>>(expr: Expression<T>): Expression<T>;
min<T extends Exclude<Scalar, Binary>>(expr: Expression<T>): Expression<T>;
/**
* 获取标识列的最近插入值
* @param table
* @param column
* @returns
*/
identityValue(table: XExpression<string>, column: XExpression<string>): Expression<number>;
/**
* 转换数据类型
* @param expr
* @param toType
* @returns
*/
convert<T extends DbType>(expr: XExpression, toType: T): Expression<ScalarFromDbType<T>>;
/**
* 获取当前日期及时间
* @returns
*/
now(): Expression<Date>;
/**
* 获取当前UTC时间
* @returns
*/
utcNow(): Expression<Date>;
/**
* 切换时区
*/
switchTimezone(date: XExpression<Date>, timeZone: XExpression<string>): Expression<Date>;
/**
* 格式化日期函数
* @param date
* @param format
* @returns
*/
formatDate(date: XExpression<Date>, fmt: string): Expression<string>;
/**
* 获取日期中的年份
* @param date
* @returns
*/
yearOf(date: XExpression<Date>): Expression<number>;
/**
* 获取日期中的月份
* @param date
* @returns
*/
monthOf(date: XExpression<Date>): Expression<number>;
/**
* 获取日期中的日
* @param date
* @returns
*/
dayOf(date: XExpression<Date>): Expression<number>;
/**
* 计算两个日期之间的天数,小数
* @param start
* @param end
* @returns
*/
daysBetween(start: XExpression<Date>, end: XExpression<Date>): Expression<number>;
/**
* 计算两个日期之间的天数,小数
* @param start
* @param end
* @returns
*/
monthsBetween(start: XExpression<Date>, end: XExpression<Date>): Expression<number>;
/**
* 计算两个日期之间的天数,小数
* @param start
* @param end
* @returns
*/
yearsBetween(start: XExpression<Date>, end: XExpression<Date>): Expression<number>;
/**
* 计算两个日期之间的天数,小数
* @param start
* @param end
* @returns
*/
hoursBetween(start: XExpression<Date>, end: XExpression<Date>): Expression<number>;
/**
* 计算两个日期之间的天数,小数
* @param start
* @param end
* @returns
*/
minutesBetween(start: XExpression<Date>, end: XExpression<Date>): Expression<number>;
/**
* 计算两个日期之间的天数,小数
* @param start
* @param end
* @returns
*/
secondsBetween(start: XExpression<Date>, end: XExpression<Date>): Expression<number>;
addDays(date: XExpression<Date>, days: XExpression<number>): Expression<Date>;
addMonths(date: XExpression<Date>, months: XExpression<number>): Expression<Date>;
addYears(date: XExpression<Date>, years: XExpression<number>): Expression<Date>;
addHours(date: XExpression<Date>, hours: XExpression<number>): Expression<Date>;
addMinutes(date: XExpression<Date>, minutes: XExpression<number>): Expression<Date>;
/**
*
* @param date
* @param seconds
* @returns
*/
addSeconds(date: XExpression<Date>, seconds: XExpression<number>): Expression<Date>;
/**
* 获取字符串长度
* @param str
* @returns
*/
strlen(str: XExpression<string>): Expression<number>;
/**
* 截取字符串
* @param str
* @param start
* @param length
* @returns
*/
substr(str: XExpression<string>, start: XExpression<number>, length: XExpression<number>): Expression<string>;
/**
* 替换字符串
* @param str 需要被替换的字符串
* @param search 查找字符串
* @param to 替换成字符串
* @param global 是否全局替换,默认为false
* @returns
*/
replace(str: XExpression<string>, search: XExpression<string>, to: XExpression<string>): Expression<string>;
/**
* 删除字符串两侧空格
* @param str
* @returns
*/
trim(str: XExpression<string>): Expression<string>;
/**
* 删除字符串右侧空格
* @param str
* @returns
*/
trimEnd(str: XExpression<string>): Expression<string>;
/**
* 转换成大写字母
* @param str
* @returns
*/
upper(str: XExpression<string>): Expression<string>;
/**
* 转换成小写字母
* @param str
* @returns
*/
lower(str: XExpression<string>): Expression<string>;
/**
* 查找一个
* @param str
* @param search
* @returns
*/
strpos(str: XExpression<string>, search: XExpression<string>, startAt?: XExpression<number>): Expression<number>;
/**
* 获取一个字符的ascii码
* @param str 字符编码
* @returns
*/
ascii(str: XExpression<string>): Expression<number>;
asciiChar(code: XExpression<number>): Expression<string>;
unicode(str: XExpression<string>): Expression<number>;
unicodeChar(code: XExpression<number>): Expression<string>;
existsTable(name: XExpression<string>): Condition;
existsDatabase(database: string): Condition;
existsView(name: XExpression<string>): Condition;
existsFunction(name: XExpression<string>): Condition;
existsProcedure(name: XExpression<string>): Condition;
existsSequence(name: XExpression<string>): Condition;
nextValue<T extends Numeric>(sequenceName: XExpression<string>): Expression<T>;
}