Condividi tramite


Mapping di funzioni canoniche del modello concettuale a funzioni SQL Server

In questo argomento viene descritto il mapping delle funzioni canoniche del modello concettuale alle corrispondenti funzioni SQL Server.

Funzioni di data e ora

Nella tabella seguente viene descritto il mapping delle funzioni di data e ora:

Funzioni canoniche Funzioni 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) Per SQL Server 2000 e SQL Server 2005, un valore formattato in datetime viene creato nel server. Per SQL Server 2008 e versioni successive, un valore datetime2 viene creato nel server.
CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset) Un valore formattato in datetimeoffset viene creato nel server.

Non supportata in SQL Server 2000 o SQL Server 2005.
CreateTime(hour, minute, second) Un valore formattato in time viene creato nel server.

Non supportata in SQL Server 2000 o SQL Server 2005.
CurrentDateTime() SysDateTime() in SQLServer 2008.

GetDate() in SQLServer 2000 e in SQLServer 2005.
CurrentDateTimeOffset() SysDateTimeOffset() in SQL Server 2008.

Non supportata in SQL Server 2000 o SQL Server 2005.
CurrentUtcDateTime() SysUtcDateTime() in SQLServer 2008. GetUtcDate() in SQL Server 2000 e in 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) Per SQL Server 2000 e SQL Server 2005, nel server viene creato un valore formattato in datetime troncato. Per SQL Server 2008 e versioni successive, nel server viene creato un valore datetime2 o datetimeoffset troncato.
Year(expression) DatePart(YEAR, expression)

Funzioni di aggregazione

Nella tabella seguente viene descritto il mapping delle funzioni di aggregazione:

Funzioni canoniche Funzioni 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)

Funzioni matematiche

Nella tabella seguente viene descritto il mapping delle funzioni matematiche:

Funzioni canoniche Funzioni 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)
Truncate ROUND(value , digits, 1)

Funzioni di stringa

Nella tabella seguente viene descritto il mapping delle funzioni di stringa:

Funzioni canoniche Funzioni SQL Server
Contains(string, target) CHARINDEX(target, string)
Concat(string1, string2) string1 + string2
EndsWith(string, target) CHARINDEX(REVERSE(target), REVERSE(string)) = 1

Note La funzione CHARINDEX restituisce il valore false se il parametro string è archiviato in una colonna di stringhe a lunghezza fissa e target è una costante. In questo caso, la ricerca viene eseguita nell'intera stringa, inclusa la spaziatura interna finale. Una possibile soluzione alternativa consiste nel tagliare i dati nella stringa a lunghezza fissa prima di passare la stringa alla funzione EndsWith, come nell'esempio seguente: 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)

Funzioni bit per bit

Nella tabella seguente viene descritto il mapping delle funzioni bit per bit:

Funzioni canoniche Funzioni SQL Server
BitWiseAnd (value1, value2) value1 & value2
BitWiseNot (value) ~value
BitWiseOr (value1, value2) value1 | value2
BitWiseXor (value1, value2) value1 ^ value2