UNPKG

lubejs-mssql

Version:

The lubejs driver for mssql.

215 lines (214 loc) 7.92 kB
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>; }