Microsoft SQL Server 提供者的函式對應

此頁面會顯示使用 SQL Server 提供者時,哪些 .NET 成員會轉譯成哪些 SQL 函式。

彙總函數

.NET SQL 已在中新增
英 孚。Functions.StandardDeviationSample(group.Select(x => x.Property)) STDEV(屬性) EF Core 7.0
英 孚。Functions.StandardDeviationPopulation(group.Select(x => x.Property)) STDEVP(屬性) EF Core 7.0
英 孚。Functions.VarianceSample(group.Select(x => x.Property)) VAR(屬性) EF Core 7.0
英 孚。Functions.VariancePopulation(group.Select(x => x.Property)) VARP(屬性) EF Core 7.0
組。Average(x => x.Property) AVG(屬性)
組。Count() COUNT\
組。LongCount() COUNT_BIG\
組。Max(x => x.Property) MAX(屬性)
組。Min(x => x.Property) MIN(屬性)
組。Sum(x => x.Property) SUM(屬性)
字串。Concat(group.Select(x => x.Property)) STRING_AGG(Property, N'') EF Core 7.0
字串。Join(分隔符,群組。Select(x => x.Property)) STRING_AGG(屬性, @separator) EF Core 7.0

二進位函式

.NET SQL 已在中新增
位元組。Contains(value) CHARINDEX(@value, @bytes)> 0
位元組。ElementAt(i) SUBSTRING(@bytes, @i + 1, 1) EF Core 8.0
位元組。第一() SUBSTRING(@bytes, 1, 1)
位元組。長度 DATALENGTH(@bytes)
位元組。SequenceEqual(second) @bytes = @second
bytes[i] SUBSTRING(@bytes, @i + 1, 1)
英 孚。Functions.DataLength(arg) DATALENGTH(@arg)

轉換函數

.NET SQL 已在中新增
位元組。ToString() CONVERT(varchar(100), @bytes)
byteValue.ToString() CONVERT(varchar(3), @byteValue)
charValue.ToString() CONVERT(varchar(1), @charValue)
Convert.ToBoolean(value) CONVERT(bit, @value)
Convert.ToByte(value) CONVERT(tinyint, @value)
Convert.ToDecimal(value) CONVERT(decimal(18, 2), @value)
Convert.ToDouble(value) CONVERT(float, @value)
Convert.ToInt16(value) CONVERT(smallint, @value)
Convert.ToInt32(value) CONVERT(int, @value)
Convert.ToInt64(value) CONVERT(bigint, @value)
Convert.ToString(value) CONVERT(nvarchar(max), @value)
dateOnly.ToString() CONVERT(varchar(100), @dateOnly) EF Core 8.0
dateTime.ToString() CONVERT(varchar(100), @dateTime)
dateTimeOffset.ToString() CONVERT(varchar(100), @dateTimeOffset)
decimalValue.ToString() CONVERT(varchar(100), @decimalValue)
doubleValue.ToString() CONVERT(varchar(100), @doubleValue)
floatValue.ToString() CONVERT(varchar(100), @floatValue)
Guid。ToString() CONVERT(varchar(36), @guid)
intValue.ToString() CONVERT(varchar(11), @intValue)
longValue.ToString() CONVERT(varchar(20), @longValue)
sbyteValue.ToString() CONVERT(varchar(4), @sbyteValue)
shortValue.ToString() CONVERT(varchar(6), @shortValue)
timeOnly.ToString() CONVERT(varchar(100), @timeOnly) EF Core 8.0
timeSpan.ToString() CONVERT(varchar(100), @timeSpan)
uintValue.ToString() CONVERT(varchar(10), @uintValue)
ulongValue.ToString() CONVERT(varchar(19), @ulongValue)
ushortValue.ToString() CONVERT(varchar(5), @ushortValue)

日期和時間函式

.NET SQL 已在中新增
DateTime.Now GETDATE()
DateTime.Today CONVERT(date, GETDATE())
DateTime.UtcNow GETUTCDATE()
dateTime.AddDays(value) DATEADD(day、 @value、 @dateTime)
dateTime.AddHours(value) DATEADD(hour, , @value@dateTime)
dateTime.AddMilliseconds(value) DATEADD(毫秒, , @value@dateTime)
dateTime.AddMinutes(value) DATEADD(minute, , @value@dateTime)
dateTime.AddMonths(month) DATEADD(month, , @months@dateTime)
dateTime.AddSeconds(value) DATEADD(second, , @value@dateTime)
dateTime.AddYears(value) DATEADD(year、 、 @value@dateTime)
dateTime.Date CONVERT(date, @dateTime)
dateTime.Day DATEPART(day, @dateTime)
dateTime.DayOfYear DATEPART(dayofyear, @dateTime)
dateTime.Hour DATEPART(hour, @dateTime)
dateTime.Millisecond DATEPART(毫秒, @dateTime)
dateTime.Minute DATEPART(分鐘, @dateTime)
dateTime.Month DATEPART(month, @dateTime)
dateTime.Second DATEPART(second, @dateTime)
dateTime.TimeOfDay CONVERT(time, @dateTime)
dateTime.Year DATEPART(year, @dateTime)
DateTimeOffset.Now SYSDATETIMEOFFSET()
DateTimeOffset.UtcNow SYSUTCDATETIME()
dateTimeOffset.AddDays(days) DATEADD(day、 @days、 @dateTimeOffset)
dateTimeOffset.AddHours(hours) DATEADD(hour, , @hours@dateTimeOffset)
dateTimeOffset.AddMilliseconds(毫秒) DATEADD(毫秒, , @milliseconds@dateTimeOffset)
dateTimeOffset.AddMinutes(minutes) DATEADD(minute, , @minutes@dateTimeOffset)
dateTimeOffset.AddMonths(month) DATEADD(month, , @months@dateTimeOffset)
dateTimeOffset.AddSeconds(seconds) DATEADD(second, , @seconds@dateTimeOffset)
dateTimeOffset.AddYears(years) DATEADD(year、 、 @years@dateTimeOffset)
dateTimeOffset.Date CONVERT(date, @dateTimeOffset)
dateTimeOffset.Day DATEPART(day, @dateTimeOffset)
dateTimeOffset.DayOfYear DATEPART(dayofyear, @dateTimeOffset)
dateTimeOffset.Hour DATEPART(hour, @dateTimeOffset)
dateTimeOffset.Millisecond DATEPART(毫秒, @dateTimeOffset)
dateTimeOffset.Minute DATEPART(分鐘, @dateTimeOffset)
dateTimeOffset.Month DATEPART(month, @dateTimeOffset)
dateTimeOffset.Second DATEPART(second, @dateTimeOffset)
dateTimeOffset.TimeOfDay CONVERT(time, @dateTimeOffset)
dateTimeOffset.ToUnixTimeSeconds() DATEDIFF_BIG(second, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset) EF Core 8.0
dateTimeOffset.ToUnixTimeMilliseconds() DATEDIFF_BIG(毫秒, '1970-01-01T00:00:00.000000+00:00', '1970-01-01T00:00:00.0000000+00:00:000000+00:00', @dateTimeOffset) EF Core 8.0
dateTimeOffset.Year DATEPART(year, @dateTimeOffset)
dateOnly.AddDays(value) DATEADD(day、 @value、 @dateOnly) EF Core 8.0
dateOnly.AddMonths(months) DATEADD(month, , @months@dateOnly) EF Core 8.0
dateOnly.AddYears(value) DATEADD(year、 、 @value@dateOnly) EF Core 8.0
dateOnly.Day DATEPART(day, @dateOnly) EF Core 8.0
dateOnly.DayOfYear DATEPART(dayofyear, @dateOnly) EF Core 8.0
DateOnly.FromDateTime(dateTime) CONVERT(date, @dateTime) EF Core 8.0
dateOnly.Month DATEPART(month, @dateOnly) EF Core 8.0
dateOnly.Year DATEPART(year, @dateOnly) EF Core 8.0
英 孚。Functions.AtTimeZone(dateTime, timeZone) @dateTime 在時區 @timeZone EF Core 7.0
英 孚。Functions.DateDiffDay(start,end) DATEDIFF(day、 @start、 @end)
英 孚。Functions.DateDiffHour(start, end) DATEDIFF(hour, , @start@end)
英 孚。Functions.DateDiffMicrosecond(start, end) DATEDIFF(microsecond, , @start@end)
英 孚。Functions.DateDiffMillisecond(start, end) DATEDIFF(毫秒, , @start@end)
英 孚。Functions.DateDiffMinute(start, end) DATEDIFF(minute, , @start@d2)
英 孚。Functions.DateDiffMonth(start,end) DATEDIFF(month, , @start@end)
英 孚。Functions.DateDiffNanosecond(start, end) DATEDIFF(nanosecond, , @start@end)
英 孚。Functions.DateDiffSecond(start, end) DATEDIFF(second, , @start@end)
英 孚。Functions.DateDiffWeek(start, end) DATEDIFF(week、 、 @start@end)
英 孚。Functions.DateDiffYear(start, end) DATEDIFF(year, , @start@end)
英 孚。Functions.DateFromParts(year、month、day) DATEFROMPARTS(@year, , @month@day)
英 孚。Functions.DateTime2FromParts(year, month, day, ...) DATETIME2FROMPARTS(@year、 @month、 @day...)
英 孚。Functions.DateTimeFromParts(year, month, day, ...) DATETIMEFROMPARTS(@year,,@month@day,...)
英 孚。Functions.DateTimeOffsetFromParts(year, month, day, ...) DATETIMEOFFSETFROMPARTS(@year, , @month@day, ...)
英 孚。Functions.IsDate(expression) ISDATE(@expression)
英 孚。Functions.SmallDateTimeFromParts(year, month, day, ...) SMALLDATETIMEFROMPARTS(@year, , @month@day, ...)
英 孚。Functions.TimeFromParts(hour, minute, second, ...) TIMEFROMPARTS(@hour、 @minute、 @second...)
timeOnly.AddHours(value) DATEADD(hour, , @value@timeOnly) EF Core 8.0
timeOnly.AddMinutes(value) DATEADD(minute, , @value@timeOnly) EF Core 8.0
timeOnly.Hours DATEPART(hour, @timeOnly) EF Core 8.0
timeOnly.IsBetween(start, end) @timeOnly>= @start AND @timeOnly<@end EF Core 8.0
timeOnly.Milliseconds DATEPART(毫秒, @timeOnly) EF Core 8.0
timeOnly.Minutes DATEPART(分鐘, @timeOnly) EF Core 8.0
timeOnly.Seconds DATEPART(second, @timeOnly) EF Core 8.0
timeSpan.Hours DATEPART(hour, @timeSpan)
timeSpan.Milliseconds DATEPART(毫秒, @timeSpan)
timeSpan.Minutes DATEPART(分鐘, @timeSpan)
timeSpan.Seconds DATEPART(second, @timeSpan)

數值函式

.NET SQL 已在中新增
雙。DegreesToRadian(x) RADIANS(@x) EF Core 8.0
雙。RadiansToDegrees(x) DEGREES(@x) EF Core 8.0
英 孚。Functions.Random() RAND()
Math.Abs(value) ABS(@value)
Math.Acos(d) ACOS(@d)
Math.Asin(d) ASIN(@d)
Math.Atan(d) ATAN(@d)
Math.Atan2(y, x) ATN2(@y, @x)
Math.Ceiling(d) CEILING(@d)
Math.Cos(d) COS(@d)
Math.Exp(d) EXP(@d)
Math.Floor(d) 地板(@d)
Math.Log(d) LOG(@d)
Math.Log(a, newBase) LOG(@a, @newBase)
Math.Log10(d) LOG10(@d)
Math.Pow(x, y) POWER(@x, @y)
Math.Round(d) ROUND(@d, 0)
Math.Round(d, 十進制數) ROUND(@d, @decimals)
Math.Sign(value) SIGN(@value)
數學.辛(a) SIN(@a)
Math.Sqrt(d) SQRT(@d)
數學.Tan(a) TAN(@a)
Math.Truncate(d) ROUND(@d, 0, 1)

提示

除了此處所列的方法之外,也會翻譯對應的 泛型數學 實作和 MathF 方法。 例如,、Math.SinMathF.Sindouble.Sinfloat.Sin 都對應至 SIN SQL 中的 函式。

字串函數

.NET SQL 已在中新增
英 孚。Functions.Collate(操作數、定序) @operand 整理 @collation
英 孚。Functions.Contains(propertyReference, searchCondition) CONTAINS(@propertyReference, @searchCondition)
英 孚。Functions.Contains(propertyReference、searchCondition、languageTerm) CONTAINS(@propertyReference、 @searchCondition、LANGUAGE @languageTerm)
英 孚。Functions.FreeText(propertyReference, freeText) FREETEXT(@propertyReference, @freeText)
英 孚。Functions.FreeText(propertyReference、freeText、languageTerm) FREETEXT(@propertyReference, , @freeTextLANGUAGE @languageTerm)
英 孚。Functions.IsNumeric(expression) ISNUMERIC(@expression)
英 孚。Functions.Like(matchExpression, pattern) @matchExpression 喜歡 @pattern
英 孚。Functions.Like(matchExpression, pattern, escapeCharacter) @matchExpression LIKE @pattern ESCAPE @escapeCharacter
字串。Compare(strA, strB) 案例當時 @strA = @strB 為 0 ...結束
字串。Concat(str0, str1) @str0 + @str1
字串。IsNullOrEmpty(value) @value 為 NULL 或 @value 類似 N''
字串。IsNullOrWhiteSpace(value) @value IS NULL OR @value = N''
stringValue.CompareTo(strB) 案例當時 @stringValue = @strB 為 0 ...結束
stringValue.Contains(value) @stringValue LIKE N'%' + @value + N'%'
stringValue.EndsWith(value) @stringValue LIKE N'%' + @value
stringValue.FirstOrDefault() SUBSTRING(@stringValue, 1, 1)
stringValue.IndexOf(value) CHARINDEX(@value, @stringValue) - 1
stringValue.IndexOf(value, startIndex) CHARINDEX(@value, , @stringValue@startIndex) - 1 EF Core 7.0
stringValue.LastOrDefault() SUBSTRING(@stringValue, LEN(@stringValue), 1)
stringValue.Length LEN(@stringValue)
stringValue.Replace(@oldValue, @newValue) REPLACE(@stringValue, , @oldValue@newValue)
stringValue.StartsWith(value) @stringValue LIKE @value + N'%'
stringValue.Substring(startIndex) SUBSTRING(@stringValue, @startIndex + 1, LEN(@stringValue))
stringValue.Substring(startIndex, length) SUBSTRING(@stringValue, @startIndex + 1, @length)
stringValue.ToLower() LOWER(@stringValue)
stringValue.ToUpper() UPPER(@stringValue)
stringValue.Trim() LTRIM(@stringValue))
stringValue.TrimEnd() RTRIM(@stringValue)
stringValue.TrimStart() LTRIM(@stringValue)

其他函式

.NET SQL
收集。Contains(item) @item IN @collection
enumValue.HasFlag(flag) @enumValue & @flag = @flag
Guid.NewGuid() NEWID()
空。GetValueOrDefault() COALESCE(@nullable, 0)
空。GetValueOrDefault(defaultValue) COALESCE(@nullable, @defaultValue)

注意

為了說明目的,某些 SQL 已簡化。 實際 SQL 較複雜,可處理更廣泛的值。

另請參閱