Conceptual Model Canonical to SQL Server Functions Mapping

This topic describes how conceptual model canonical functions map to the corresponding SQL Server functions.

Date and Time Functions

The following table describes the date and time functions mapping:

Canonical functions SQL Server functions

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)

For SQL Server 2000 and SQL Server 2005, a datetime formatted value is created on the server. For SQL Server 2008 and later versions, a datetime2 value is created on the server.

CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset)

A datetimeoffset formatted value is created on the server.

Not supported in SQL Server 2000 or SQL Server 2005.

CreateTime(hour, minute, second)

A time formatted value is created on the server.

Not supported in SQL Server 2000 or SQL Server 2005.

CurrentDateTime()

SysDateTime() in SQLServer 2008.

GetDate() in SQLServer 2000 and SQLServer 2005.

CurrentDateTimeOffset()

SysDateTimeOffset() in SQL Server 2008.

Not supported in SQL Server 2000 or SQL Server 2005.

CurrentUtcDateTime()

SysUtcDateTime() in SQLServer 2008. GetUtcDate() in SQL Server 2000 and 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)

For SQL Server 2000 and SQL Server 2005, a truncated datetime formatted value is created on the server. For SQL Server 2008 and later versions, a truncated datetime2 or datetimeoffset value is created on the server.

Year(expression)

DatePart(YEAR, expression)

Aggregate Functions

The following table describes the aggregate functions mapping:

Canonical functions SQL Server functions

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)

Math functions

The following table describes the math functions mapping:

Canonical functions SQL Server functions

Abs(value)

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)

String Functions

The following table describes the string functions mapping:

Canonical functions SQL Server functions

Contains(string, target)

CHARINDEX(target, string)

Concat(string1, string2)

string1 + string2

EndsWith(string, target)

CHARINDEX(REVERSE(target), REVERSE(string)) = 1

Note   The CHARINDEX function returns false if the string is stored in a fixed length string column and target is a constant. In this case, the entire string is searched, including any padding trailing spaces. A possible workaround is to trim the data in the fixed length string before passing the string to the EndsWith function, as in the following example: 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)

Bitwise Functions

The following table describes the bitwise functions mapping:

Canonical functions SQL Server functions

BitWiseAnd (value1, value2)

value1 & value2

BitWiseNot (value)

~value

BitWiseOr (value1, value2)

value1 | value2

BitWiseXor (value1, value2)

value1 ^ value2