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


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

Millisecond(expression)

DatePart(millisecond, expression)

Minute(expression)

DatePart(minute, expression)

Month(expression)

DatePart(month, expression)

Second(expression)

DatePart(second, expression)

Truncate(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(значение)

ABS(value)

Ceiling(value)

CEILING(value)

Floor(value)

FLOOR(value)

Power(value)

POWER(value, exponent)

Round(value)

ROUND(value, digits, 0)

Truncate

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)

Left (string1, length)

LEFT(string1, length)

Length (string)

LEN(string)

LTrim(string)

LTRIM(string)

Right (string1, length)

RIGHT (string1, length)

Trim(string)

LTRIM(RTRIM(string))

Replace (string1, string2, string3)

REPLACE(string1, string2, string3)

Reverse (string)

REVERSE (string)

RTrim(string)

RTRIM(string)

StartsWith(string, target)

CHARINDEX(target, string)

Substring(string, start, length)

SUBSTRING(string, start, length)

ToLower(string)

LOWER(string)

ToUpper(string)

UPPER(string)

Битовые функции

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

Канонические функции Функции SQL Server

BitWiseAnd (value1, value2)

value1 & value2

BitWiseNot (value)

~value

BitWiseOr (value1, value2)

value1 | value2

BitWiseXor (value1, value2)

value1 ^ value2