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


Сопоставление канонических функций концептуальной модели с функциями 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() в SQLServer 2008.

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

Не поддерживается в SQL Server 2000 и SQL Server 2005.
CurrentUtcDateTime() SysUtcDateTime() в SQLServer 2008. GetUtcDate() в SQL Server 2000 и SQL Server 2005.
DayOfYear(expression) DatePart(dayofyear, expression)
Day(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)
Hour(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) string1 + string2
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 (значение) ~value
BitWiseOr (value1, value2) value1 | value2
BitWiseXor (value1, value2) value1 ^ value2