本主題描述概念模型標準函式如何對應至對應的 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(小時、分鐘、秒) | 在伺服器上會建立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) |
| 分鐘(表達式) | 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(value) | ABS(value) |
| Ceiling(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) |
| Left(string1, length) | LEFT(string1, length) |
| 長度 (字串) | LEN(string) |
| LTrim(string) | LTRIM(string) |
| Right(string1,length) | RIGHT (string1, length) |
| Trim(string) | LTRIM(RTRIM(string)) |
| 替換(string1, string2, string3) | REPLACE(string1, string2, string3) |
| 反向 (字串) | 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) | ~價值 |
| BitWiseOr (value1, value2) | value1 |value2 |
| BitWiseXor(value1, value2) | value1 ^ value2 |