Поделиться через


Сопоставление функций концептуальной модели с сопоставлением функций SQL Server

В этом разделе описывается сопоставление канонических функций концептуальной модели с соответствующими функциями SQL Server.

Функции даты и времени

В следующей таблице описано сопоставление функций даты и времени:

Канонические функции Функции SQL Server
AddDays(expression) DATEADD(day, number, date)
AddHours(expression) DATEADD(hour, number, date)
AddMicroseconds(expression) DATEADD(microsecond, number, date)
AddMilliseconds(expression) DATEADD(millisecond, number, date)
AddMinutes(expression) - ДобавитьМинуты(выражение) DATEADD(minute, number, date)
AddMonths(expression) DATEADD(month, number, date)
AddNanoseconds(expression) DATEADD(nanosecond, number, date)
AddSeconds(expression) DATEADD(second, number, date)
AddYears(expression) DATEADD(year, number, date)
CreateDateTime(year, month, day, hour, minute, second) Для SQL Server 2000 и SQL Server 2005 на сервере создается отформатированное значение datetime. Для SQL Server 2008 и более поздних версий на сервере создается значение datetime2.
CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset) На сервере создается значение в формате datetimeoffset.

Не поддерживается в SQL Server 2000 или SQL Server 2005.
CreateTime(hour, minute, second) На сервере создается значение в формате time.

Не поддерживается в SQL Server 2000 или SQL Server 2005.
CurrentDateTime() SysDateTime() в SQL Server 2008.

GetDate() в SQLServer 2000 и SQLServer 2005.
CurrentDateTimeOffset() SysDateTimeOffset() в SQL Server 2008.

Не поддерживается в SQL Server 2000 или SQL Server 2005.
CurrentUtcDateTime() SysUtcDateTime() в SQL Server 2008. GetUtcDate() в SQL Server 2000 и SQL Server 2005.
DayOfYear(expression) DatePart(dayofyear, expression)
День(выражение) DatePart(day, expression)
DiffDays(startExpression, endExpression) DATEDIFF(day, startdate, enddate)
DiffHours(startExpression, endExpression) DATEDIFF(hour, startdate, enddate)
DiffMicroseconds(startExpression, endExpression) DATEDIFF(microsecond, startdate, enddate)
DiffMilliseconds(startExpression, endExpression) DATEDIFF(millisecond, startdate, enddate)
DiffMinutes(startExpression, endExpression) DATEDIFF(minute, startdate, enddate)
DiffNanoseconds(startExpression, endExpression) DATEDIFF(nanosecond, startdate, enddate)
DiffSeconds(startExpression, endExpression) DATEDIFF(second, startdate, enddate)
DiffYears(startExpression, endExpression) DATEDIFF(year, startdate, enddate)
GetTotalOffsetMinutes(DateTimeOffset) DatePart(tzoffset, expression)
Час(выражение) DatePart(hour, expression)
Миллисекунда(выражение) DatePart(millisecond, expression)
Minute(expression) DatePart(minute, expression)
Month(expression) DatePart(month, expression)
Second(expression) DatePart(second, expression)
Усечение(выражение) Для SQL Server 2000 и SQL Server 2005 на сервере создается усеченное форматированное datetime значение. Для SQL Server 2008 и более поздних версий на сервере создается обрезанное значение datetime2 или datetimeoffset.
Year(expression) DatePart(YEAR, expression)

Агрегатные функции

В следующей таблице описывается сопоставление агрегатных функций:

Канонические функции Функции SQL Server
Avg(expression) AVG(expression)
BigCount(expression) BIGCOUNT(expression)
Count(expression) COUNT(expression)
Min(expression) MIN(expression)
Max(expression) MAX(expression)
StDev(expression) STDEV(expression)
StDevP(expression) STDEVP(expression)
Sum(expression) SUM(expression)
Var(expression) VAR(expression)
VarP(expression) VARP(expression)

Математические функции

В следующей таблице описывается сопоставление математических функций:

Канонические функции Функции SQL Server
Abs(value) ABS(value)
Потолок(значение) CEILING(value)
Floor(value) FLOOR(value)
Power(value) POWER(value, exponent)
Round(value) ROUND(value, digits, 0)
Усечение ROUND(value , digits, 1)

Строковые функции

В следующей таблице описывается сопоставление строковых функций:

Канонические функции Функции SQL Server
Contains(string, target) CHARINDEX(target, string)
Concat(string1, string2) строка1 + строка2
EndsWith(string, target) CHARINDEX(REVERSE(target), REVERSE(string)) = 1

Заметка Функция CHARINDEX возвращается false , если string он хранится в столбце строки фиксированной длины и target является константой. В этом случае выполняется поиск всей строки, включая любые добавленные пробелы в конце. Возможное решение заключается в том, чтобы обрезать данные в строке фиксированной длины перед передачей строки в EndsWith функцию, как показано в следующем примере: EndsWith(TRIM(string), target)
IndexOf(target, string2) CHARINDEX(target, string2)
Слева (строка1, длина) LEFT(string1, length)
Длина (строка) LEN(string)
LTrim(string) LTRIM(string)
Справа (строка1, длина) RIGHT (string1, length)
Trim(string) LTRIM(RTRIM(string))
Replace (string1, string2, string3) REPLACE(string1, string2, string3)
Обратный (строка) REVERSE (string)
RTrim(string) RTRIM(string)
StartsWith(string, target) CHARINDEX(target, string)
Подстрока(string, start, length) SUBSTRING(string, start, length)
ToLower(string) LOWER(string)
ToUpper(string) UPPER(string)

Побитовые функции

В следующей таблице описано сопоставление побитовых функций:

Канонические функции Функции SQL Server
BitWiseAnd (value1, value2) value1 и value2
BitWiseNot (значение) ~ценность
BitWiseOr (value1, value2) значение1 | значение2
BitWiseXor (value1, value2) value1 ^ value2