概念模型规范函数到 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 及更高版本,在服务器上创建被截断的 datetime2datetimeoffset 值。

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

注意   如果 string 存储在固定长度字符串列中且 target 为常量,CHARINDEX 函数返回 false。 在这种情况下,将搜索整个字符串,包括任何填充尾随空格。 一种可行的解决方法是在将字符串传递给 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