Sdílet prostřednictvím


Konceptuální model v kanonickém formátu pro mapování funkcí SQL Serveru

Toto téma popisuje, jak se koncepční kanonické funkce modelu mapují na odpovídající funkce SQL Serveru.

Funkce data a času

Následující tabulka popisuje mapování funkcí data a času:

Kanonické funkce Funkce SQL Serveru
AddDays(výraz) 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(rok, měsíc, den, hodina, minuta, sekunda) Pro SYSTÉM SQL Server 2000 a SQL Server 2005 datetime se na serveru vytvoří formátovaná hodnota. Pro SQL Server 2008 a novější verze datetime2 se na serveru vytvoří hodnota.
CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset) Na datetimeoffset serveru se vytvoří formátovaná hodnota.

Sql Server 2000 nebo SQL Server 2005 se nepodporuje.
CreateTime(hodina, minuta, sekunda) Na time serveru se vytvoří formátovaná hodnota.

Sql Server 2000 nebo SQL Server 2005 se nepodporuje.
CurrentDateTime() SysDateTime() v SQLServeru 2008.

GetDate() sqlServer 2000 a SQLServer 2005.
CurrentDateTimeOffset() SysDateTimeOffset() v SYSTÉMU SQL Server 2008.

Sql Server 2000 nebo SQL Server 2005 se nepodporuje.
CurrentUtcDateTime() SysUtcDateTime() v SQLServeru 2008. GetUtcDate() v systému SQL Server 2000 a 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)
Milisekund(výraz) DatePart(millisecond, expression)
Minute(expression) DatePart(minute, expression)
Month(expression) DatePart(month, expression)
Second(výraz) DatePart(second, expression)
Truncate(expression) Pro SQL Server 2000 a SQL Server 2005 se na serveru vytvoří zkrácená formátovaná datetime hodnota. Pro SQL Server 2008 a novější verze se na serveru vytvoří zkrácená hodnota nebo datetimeoffset zkrácená datetime2 hodnota.
Year(expression) DatePart(YEAR, expression)

Agregační funkce

Následující tabulka popisuje mapování agregačních funkcí:

Kanonické funkce Funkce SQL Serveru
Avg(expression) AVG(expression)
BigCount(výraz) BIGCOUNT(expression)
Count(expression) COUNT(expression)
Min(výraz) MIN(expression)
Max(výraz) MAX(expression)
StDev(expression) STDEV(expression)
StDevP(expression) STDEVP(expression)
Sum(expression) SUM(expression)
Var(výraz) VAR(expression)
VarP(výraz) VARP(expression)

Matematické funkce

Následující tabulka popisuje mapování matematických funkcí:

Kanonické funkce Funkce SQL Serveru
Abs(hodnota) ABS(value)
Ceiling(hodnota) CEILING(value)
Floor(value) FLOOR(value)
Power(value) POWER(value, exponent)
Round(value) ROUND(value, digits, 0)
Zkrátit ROUND(value , digits, 1)

Funkce pro práci s řetězci

Následující tabulka popisuje mapování řetězcových funkcí:

Kanonické funkce Funkce SQL Serveru
Contains(řetězec, cíl) CHARINDEX(target, string)
Concat(řetězec1, řetězec2) string1 + string2
EndsWith(řetězec, cíl) CHARINDEX(REVERSE(target), REVERSE(string)) = 1

Poznámka: Funkce CHARINDEX vrátí false , pokud string je uložena ve sloupci řetězce s pevnou délkou a target je konstanta. V tomto případě se prohledá celý řetězec, včetně všech odsazení koncových mezer. Možným alternativním řešením je oříznout data v řetězci s pevnou délkou před předáním řetězce funkci, jak je znázorněno v následujícím příkladu EndsWith : EndsWith(TRIM(string), target)
IndexOf(target; string2) CHARINDEX(target, string2)
Vlevo (řetězec1, délka) LEFT(string1, length)
Délka (řetězec) LEN(string)
LTrim(řetězec) LTRIM(string)
Vpravo (řetězec1, délka) RIGHT (string1, length)
Trim(řetězec) LTRIM(RTRIM(string))
Nahradit (řetězec1, řetězec2, řetězec3) REPLACE(string1, string2, string3)
Obrácení (řetězec) REVERSE (string)
RTrim(řetězec) RTRIM(string)
StartsWith(řetězec, cíl) CHARINDEX(target, string)
Podřetězce (řetězec, začátek, délka) SUBSTRING(string, start, length)
ToLower(řetězec) LOWER(string)
ToUpper(řetězec) UPPER(string)

Bitové funkce

Následující tabulka popisuje mapování bitových funkcí:

Kanonické funkce Funkce SQL Serveru
BitWiseAnd (hodnota1, hodnota2) hodnota1 a hodnota2
BitWiseNot (hodnota) ~Hodnotu
BitWiseOr (hodnota1, hodnota2) hodnota1 | hodnota2
BitWiseXor (hodnota1, hodnota2) hodnota1 ^ hodnota2