Below is a list of Common Language Runtime (CLR) methods and properties and LINQ to Entities functions supported by the EFCore Provider. The Teradata SQL function or statement into which they are interpreted is also listed.
Aggregate Method | Teradata SQL Function | Supported |
---|---|---|
Average(expression) | AVG(expression) | YES |
Count(expression) | COUNT(expression) | YES |
Max(expression) | MAX(expression) | YES |
Min(expression) | MIN(expression) | YES |
Sum(expression) | SUM(expression) | YES |
Math Method | Teradata SQL Function | Supported |
Abs(value) | ABS(value) | YES |
Acos(value) | ACOS(value) | YES |
Asin(value) | ASIN(value) | YES |
Atan(value) | ATAN(value) | YES |
Atan2(y, x) | ATAN2(x, y) | YES |
Ceiling(value) | CEIL(value) | YES |
Cos(value) | COS(value) | YES |
Exp(value) | EXP(value) | YES |
Floor(value) | FLOOR(value) | YES |
Log(value) | LN(value) | YES |
Min(value1, value2) | LEAST(value1, value2) | YES |
Max(value1, value2) | GREATEST(value1, value2) | YES |
Log10(value) | LOG(value) | YES |
Pow(value, exponent) | POWER(value, exponent) | YES |
Round(value) | ROUND(value) | YES |
Round(value, digits) | ROUND(value, digits) | YES |
Sign(value) | SIGN(value) | YES |
Sin(value) | SIN(value) | YES |
Sqrt(value) | SQRT(value) | YES |
Tan(value) | TAN(value) | YES |
Truncate(value) | TRUNC(value) | YES |
String Method or Property | Teradata SQL Function | Supported |
Compare(str1, str2[, ignoreCase]) op val | str1 op str2 | YES (see note 1) |
str1.Compare(str2) op val | str1 op str2 | YES |
str1 + str2 | str1 || str2 | YES. This form is recommended. |
Concat(str1, str2) | str1 || str2 | YES. Only handled when both arguments are strings. |
str1.Concat(str2) | n/a | NO |
expression.Contains(pattern) | (pattern = '') OR (INSTR(expression, pattern) > 0) | YES |
expression.EndsWith(pattern[, StringComparison]) | (pattern = '') OR (SUBSTR(expression, (CHARACTER_LENGTH(expression) - CHARACTER_LENGTH(pattern)) + 1, CHARACTER_LENGTH(pattern)) ([NOT ]CS) = pattern ([NOT ]CS)) | YES (see note 1) |
expression.IndexOf(search) | CASE WHEN (search = '') THEN 0 ELSE INSTR(expression, search) - 1 END | YES |
IsNullOrWhitespace(expression) | IS NULL OR TRIM(expression) = '' | YES |
expression.Length | CHAR_LENGTH(expression) | YES |
expression.PadLeft(length) | LPAD(expression, length) | YES |
expression.PadLeft(length, char) | LPAD(expression, length, char) | YES |
expression.PadRight(length) | RPAD(expression, length) | YES |
expression.PadRight(length, char) | RPAD(expression, length, char) | YES |
expression.Replace(str2, str3) | OREPLACE(expression, str2, str3) | YES |
expression.StartsWith(pattern[, StringComparison]) | (pattern = '') OR (SUBSTR(expression, 1, CHARACTER_LENGTH(pattern)) ([NOT ]CS) = pattern ([NOT ]CS)) | YES (see note 1) |
expression.Substring(start) | SUBSTR(expression, start+1) | YES |
expression.Substring(start, length) | SUBSTR(expression, start+1, length) | YES |
expression.ToLower() | LOWER(expression) | YES |
expression.ToUpper() | UPPER(expression) | YES |
expression.Trim() | TRIM(expression) | YES |
expression.Trim(chars) | LTRIM(RTRIM(expression, chars), chars) | YES (see note 2) |
expression.TrimEnd() | RTRIM(expression) | YES |
expression.TrimEnd(chars) | RTRIM(expression, chars) | YES (see note 2) |
expression.TrimStart() | LTRIM(expression) | YES |
expression.TrimStart(chars) | LTRIM(expression, chars) | YES (see note 2) |
Date and Time Method or Property | Teradata SQL Function | Supported |
DateTime.Today | CAST(Current_Date AS Date) | YES |
DateTime.Now | CAST(Current_Timestamp AS Timestamp) | YES |
DateTime.UtcNow | CAST(Current_Timestamp AT TIME ZONE 0 AS Timestamp) | YES |
expression.Add(timespan) | expression + CAST(timespan AS INTERVAL DAY(4) TO SECOND(6)) | YES (see note 3) |
expression.AddDays(count) | expression + CAST(count AS INTERVAL DAY(4)) | YES (see note 3) |
expression.AddHours(count) | expression + CAST(count AS INTERVAL HOUR(4)) | YES (see note 3) |
expression.AddMilliSeconds(count) | expression + CAST( CAST(count AS DECIMAL(10,3)) / 1000 AS INTERVAL SECOND(4,3)) | YES (see note 3) |
expression.AddMinutes(count) | expression + CAST(count AS INTERVAL MINUTE(4)) | YES (see note 3) |
expression.AddMonths(count) | expression + CAST(count AS INTERVAL MONTH(4)) | YES (see note 3) |
expression.AddSeconds(count) | expression + CAST(count AS INTERVAL SECOND(4,0)) | YES (see note 3) |
expression.AddYears(count) | expression + CAST(count AS INTERVAL YEAR(4)) | YES (see note 3) |
expression.Date | CAST(expression AS Date) | YES |
expression.Day | EXTRACT(DAY FROM expression) | YES |
expression.DayOfWeek() | DayNumber_Of_Week(expression) - 1 | YES. You must cast the result as Int32. |
expression.DayOfYear() | DayNumber_Of_Year(expression) | YES |
expression.Hour | EXTRACT(HOUR FROM expression) | YES |
expression.Millisecond | CAST(EXTRACT(SECOND FROM expression) MOD 1 * 1000 AS Integer) | YES |
expression.Minute | EXTRACT(MINUTE FROM expression) | YES |
expression.Month | EXTRACT(MONTH FROM expression) | YES |
expression.Second | CAST(EXTRACT(SECOND FROM expression) AS Integer) | YES |
expression.Year | EXTRACT(YEAR FROM expression) | YES |
BitWise Method | Teradata SQL Function | Supported |
BitwiseAnd(value1, value2) | BITAND(value1, value2) | YES |
BitWiseOR(value1, value2) | BITOR(value1, value2) | YES |
Data Type Conversion Method | Teradata SQL Function | Supported |
Convert.ToByte(arg) | CAST(arg AS BYTEINT) | YES. arg is a numeric or numeric String. |
Convert.ToInt16(arg) | CAST(arg AS SMALLINT) | YES. arg is a numeric or numeric String. |
Convert.ToInt32(arg) | CAST(arg AS INTEGER) | YES. arg is a numeric or numeric String. |
Convert.ToInt64(arg) | CAST(arg AS BIGINT) | YES. arg is a numeric or numeric String. |
Convert.ToDecimal(arg) | CAST(arg AS DECIMAL(28,2)) | YES. arg is a numeric or numeric String. |
Convert.ToDouble(arg) | CAST(arg AS FLOAT) | YES. arg is a numeric or numeric String. |
Convert.ToSingle(arg) | CAST(arg AS FLOAT) | YES. arg is a numeric or numeric String. |
Convert.ToString(arg) | CAST(arg AS VARCHAR(21)) | YES. arg is any numeric type. |
object.ToString() | CAST(object AS VARCHAR(n)) | YES. arg is any supported type. |
The suffix (CS) or (NOT CS) is based on the IgnoreCase or StringComparison argument, if specified. If the argument is not specified, case sensitivity will default to the SQL Engine and would depend on property configuration and session transaction mode. The application can use the ForTeradataIsCaseSensitive extension method to configure case sensitivity of a property.
The Trim methods handle Char and Char[] literals, and Char variables, on the Teradata SQL Engine. For Char[] variables we retrieve the full string and trim it locally.
All DateTime Add methods use Teradata Intervals to add the value to the DateTime, DateTimeOffset or Time (when applicable). Teradata Intervals (see the Teradata Data Types and Literals manual) are limited by a maximum precision of 4, which limits the maximum value in the Add methods. Precision is the number of significant digits in the most significant field of the Interval. For example in the AddMonths method, the Interval Month is used to add months to the DateTime or DateTimeOffset. A maximum value of 9999 months (four significant digits of precision) may be added to a DateTime or DateTimeOffset in this example.