Сопоставление методов CLR с каноническими функциями
Некоторые методы CLR преобразовываются в дерево команд канонических функций, которые можно исполнить в базе данных. Если метод CLR невозможно сопоставить с деревом команд канонической функции, при выполнении преобразования возникает исключение.
Сопоставление метода System.String (статический)
Метод System.String (статический) | Каноническая функция |
---|---|
System.String Concat(String str0, String str1) |
Concat(str0, str1) |
System.String Concat(String str0, String str1, String str2) |
Concat(Concat(str0, str1), str2) |
System.String Concat(String str0, String str1, String str2, String str03) |
Concat(Concat(Concat(str0, str1), str2), str3) |
Boolean Equals(String a, String b) |
оператор = |
Boolean IsNullOrEmpty(String value) |
(IsNull(value)) OR Length(value) = 0 |
Boolean op_Equality(String a, String b) |
Оператор = |
Boolean op_Inequality(String a , String b) |
оператор != |
Microsoft.VisualBasic.Strings.Trim(String str) |
Trim(str) |
Microsoft.VisualBasic.Strings.LTrim(String str) |
Ltrim(str) |
Microsoft.VisualBasic.Strings.RTrim(String str) |
Rtrim(str) |
Microsoft.VisualBasic.Strings.Len(String expression) |
Length(expression) |
Microsoft.VisualBasic.Strings.Left(String str, Int32 Length) |
Left(str, Length) |
Microsoft.VisualBasic.Strings.Mid(String str, Int32 Start, Int32 Length) |
Substring(str, Start, Length) |
Microsoft.VisualBasic.Strings.Right(String str, Int32 Length) |
Right(str, Length) |
Microsoft.VisualBasic.Strings.UCase(String Value) |
ToUpper(Value) |
Microsoft.VisualBasic.Strings.LCase(String Value) |
ToLower(Value) |
Сопоставление метода System.String (экземпляр)
Метод System.String (экземпляр) | Каноническая функция | Примечания |
---|---|---|
Boolean Contains(String value) |
IndexOf(this, value) > 0 |
|
Boolean EndsWith(String value) |
Right(this, length(value)) = value |
|
Boolean StartsWith(String value) |
IndexOf(this, value) = 1 |
|
Int32 get_Length() |
Length(this) |
|
Int32 IndexOf(String value) |
IndexOf(this, value) - 1 |
|
System.String Insert(Int32 startIndex, String value) |
Concat(Concat(Substring(this, 1, startIndex), value), Substring(this, startIndex+1, Length(this) - startIndex)) |
|
System.String Remove(Int32 startIndex) |
Substring(this, 1, startIndex) |
|
System.String Remove(Int32 startIndex, Int32 count) |
Concat(Substring(this, 1, startIndex) , Substring(this, startIndex + count +1, Length(this) - (startIndex + count))) |
Remove(startIndex, count) поддерживается, только если count — это неотрицательное целое число. |
System.String Replace(String oldValue, String newValue) |
Replace(this, oldValue, newValue) |
|
System.String Substring(Int32 startIndex) |
Substring(this, startIndex +1, Length(this) - startIndex) |
|
System.String Substring(Int32 startIndex, Int32 length) |
Substring(this, startIndex +1, length) |
|
System.String ToLower() |
ToLower(this) |
|
System.String ToUpper() |
ToUpper(this) |
|
System.String Trim() |
Trim(this) |
|
System.String TrimEnd(Char[] trimChars) |
RTrim(this) |
|
System.String TrimStart(Char[]trimChars) |
LTrim(this) |
|
Boolean Equals(String value) |
Оператор = |
Сопоставление метода System.DateTime (статический)
Метод System.DateTime (статический) | Каноническая функция | Примечания |
---|---|---|
Boolean Equals(DateTime t1, DateTime t2) |
Оператор = |
|
System.DateTime get_Now() |
CurrentDateTime() |
|
System.DateTime get_UtcNow() |
CurrentUtcDateTime() |
|
Boolean op_Equality(DateTime d1, DateTime d2) |
Оператор = |
|
Boolean op_GreaterThan(DateTime t1, DateTime t2) |
оператор > |
|
Boolean op_GreaterThanOrEqual(DateTime t1, DateTime t2) |
> оператор = |
|
Boolean op_Inequality(DateTime t1, DateTime t2) |
Оператор != |
|
Boolean op_LessThan(DateTime t1, DateTime t2) |
оператор < |
|
Boolean op_LessThanOrEqual(DateTime t1, DateTime t2) |
< оператор = |
|
Microsoft.VisualBasic.DateAndTime.DatePart( _ ByVal Interval As DateInterval, _ ByVal DateValue As DateTime, _ Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _ Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _ ) As Integer |
Дополнительные сведения см. в разделе «Функция DatePart». |
|
Microsoft.VisualBasic.DateAndTime.Now |
CurrentDateTime() |
|
Microsoft.VisualBasic.DateAndTime.Year(DateTime TimeValue) |
Year() |
|
Microsoft.VisualBasic.DateAndTime.Month(DateTime TimeValue) |
Month() |
|
Microsoft.VisualBasic.DateAndTime.Day(DateTime TimeValue) |
Day() |
|
Microsoft.VisualBasic.DateAndTime.Hour(DateTime TimeValue) |
Hour() |
|
Microsoft.VisualBasic.DateAndTime.Minute(DateTime TimeValue) |
Minute() |
|
Microsoft.VisualBasic.DateAndTime.Second(DateTime TimeValue) |
Second() |
Сопоставление метода System.DateTime (экземпляр)
Метод System.DateTime (экземпляр) | Каноническая функция |
---|---|
Boolean Equals(DateTime value) |
Оператор = |
Int32 get_Day() |
Day(this) |
Int32 get_Hour() |
Hour(this) |
Int32 get_Millisecond() |
Millisecond(this) |
Int32 get_Minute() |
Minute(this) |
Int32 get_Month() |
Month(this) |
Int32 get_Second() |
Second(this) |
Int32 get_Year() |
Year(this) |
Сопоставление метода System.DateTimeOffset (экземпляр)
Метод System.DateTimeOffset (экземпляр) | Каноническая функция | Примечания |
---|---|---|
Int32 get_Day() |
Day(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Hour() |
Hour(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Millisecond() |
Millisecond(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Minute() |
Minute(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Month() |
Month(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Second() |
Second(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Year() |
Year(this) |
Не поддерживается для SQL Server 2005. |
Сопоставление метода System.DateTimeOffset (статический)
Метод System.DateTimeOffset (статический) | Каноническая функция | Примечания |
---|---|---|
System.DateTimeOffset get_Now() |
CurrentDateTimeOffset() |
Не поддерживается для SQL Server 2005. |
Сопоставление метода System.TimeSpan (экземпляр)
Метод System.TimeSpan (экземпляр) | Каноническая функция | Примечания |
---|---|---|
Int32 get_Hours() |
Hour(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Milliseconds() |
Millisecond(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Minutes() |
Minute(this) |
Не поддерживается для SQL Server 2005. |
Int32 get_Seconds() |
Second(this) |
Не поддерживается для SQL Server 2005. |
Функция DatePart
Функция DatePart сопоставляется с одной или несколькими каноническими функциями в зависимости от значения Interval. В следующей таблице приведено сопоставление канонических функций для поддерживаемых значений Interval.
Значение интервала | Каноническая функция |
---|---|
DateInterval.Year |
Year() |
DateInterval.Month |
Month() |
DateInterval.Day |
Day() |
DateInterval.Hour |
Hour() |
DateInterval.Minute |
Minute() |
DateInterval.Second |
Second() |
Сопоставление математических функций
Метод CLR | Каноническая функция |
---|---|
System.Decimal.Ceiling(Decimal d) |
Ceiling(d) |
System.Decimal.Floor(Decimal d) |
Floor(d) |
System.Decimal.Round(Decimal d) |
Round(d) |
System.Math.Ceiling(Decimal d) |
Ceiling(d) |
System.Math.Floor(Decimal d) |
Floor(d) |
System.Math.Round(Decimal d) |
Round(d) |
System.Math.Ceiling(Double a) |
Ceiling(a) |
System.Math.Floor(Double a) |
Floor(a) |
System.Math.Round(Double a) |
Round(a) |
Сопоставление побитовых операторов
Побитовый оператор | Канонические функции для нелогических операндов | Канонические функции для логических операндов |
---|---|---|
Побитовый оператор AND |
BitWiseAnd |
op1 AND op2 |
Побитовый оператор OR |
BitWiseOr |
op1 OR op2 |
Побитовый оператор NOT |
BitWiseNot |
NOT(op) |
Побитовый оператор XOR |
BitWiseXor |
((op1 AND NOT(op2)) OR (NOT(op1) AND op2)) |