Bagikan melalui


Pemetaan Fungsi Penyedia Microsoft SQL Server

Halaman ini menunjukkan anggota .NET mana yang diterjemahkan ke dalam fungsi SQL mana saat menggunakan penyedia SQL Server.

Fungsi agregat

.NET SQL Ditambahkan dalam
EF. Functions.StandardDeviationSample(group. Pilih(x => x.Property)) STDEV(Properti)
EF.Functions.StandardDeviationPopulation(group.Select(x => x.Property)) STDEVP(Properti)
EF. Functions.VarianceSample(group. Pilih(x => x.Property)) VAR(Properti)
EF.Functions.VariancePopulation(group.Select(x => x.Property)) VARP(Properti)
kelompok.RataRata(x => x.Property) AVG(Property)
kelompok. Count() COUNT(*)
kelompok. LongCount() COUNT_BIG(*)
group.MAX(x => x.Property) MAX(Property)
kelompok. Min(x => x.Property) MIN(Property)
kelompok.Jumlah(x => x.Property) JUMLAH(Properti)
String.Concat(group.Select(x => x.Property)) STRING_AGG(Properti, N''')
tali. Gabung(pemisah, grup. Pilih(x => x.Property)) STRING_AGG(Properti, @separator)

Fungsi biner

.NET SQL Ditambahkan dalam
Byte. Contains(value) CHARINDEX(@value, @bytes)> 0
bytes.ElementAt(i) SUBSTRING(@bytes, @i + 1, 1)
bytes.First() SUBSTRING(@bytes, 1, 1)
Byte. Panjangnya DATALENGTH(@bytes)
ByteSequenceEqual(second) @bytes = @second
bytes[i] SUBSTRING(@bytes, @i + 1, 1)
EF.Functions.DataLength(arg) DATALENGTH(@arg)

Fungsi konversi

.NET SQL Ditambahkan dalam
bytes.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) (mengubah ke desimal dengan nilai) CONVERT(desimal(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)
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)
timeSpan.ToString() CONVERT(varchar(100), @timeSpan)
uintValue.ToString() CONVERT(varchar(10), @uintValue)
ulongValue.ToString() CONVERT(varchar(19), @ulongValue)
ushortValue.ToString() CONVERT(varchar(5), @ushortValue)

Fungsi tanggal dan waktu

.NET SQL Ditambahkan dalam
DateTime.Now GETDATE()
DateTime.Today CONVERT(date, GETDATE())
DateTime.UtcNow GETUTCDATE()
dateTime.AddDays(value) DATEADD(hari, @value, @dateTime)
dateTime.AddHours(value) DATEADD(jam, @value, @dateTime)
dateTime.AddMilliseconds(value) DATEADD(milidetik, @value, @dateTime)
dateTime.AddMinutes(value) DATEADD(menit, @value, @dateTime)
dateTime.AddMonths(bulan) DATEADD(bulan, @months, @dateTime)
dateTime.AddSeconds(value) DATEADD(detik, @value, @dateTime)
dateTime.AddYears(value) DATEADD(year, @value, @dateTime)
dateTime.Date CONVERT(date, @dateTime)
dateTime.Day DATEPART(hari, @dateTime)
dateTime.DayOfYear DATEPART(dayofyear, @dateTime)
dateTime.Hour DATEPART(jam, @dateTime)
dateTime.Microsecond DATEPART(microsecond, @dateTime) % 1000 EF Core 10.0
dateTime.Millisecond DATEPART(milidetik, @dateTime)
dateTime.Minute DATEPART(menit, @dateTime)
dateTime.Month DATEPART(bulan, @dateTime)
dateTime.Nanosecond DATEPART(nanodetik, @dateTime) % 1000 EF Core 10.0
dateTime.Second DATEPART(detik, @dateTime)
dateTime.TimeOfDay CONVERT(time, @dateTime)
dateTime.Year DATEPART(tahun, @dateTime)
DateTimeOffset.Now SYSDATETIMEOFFSET()
DateTimeOffset.UtcNow SYSUTCDATETIME()
dateTimeOffset.AddDays(days) DATEADD(hari, @days, @dateTimeOffset)
dateTimeOffset.AddHours(hours) DATEADD(jam, @hours, @dateTimeOffset)
dateTimeOffset.AddMilliseconds(milisecond) DATEADD(milidetik, @milliseconds, @dateTimeOffset)
dateTimeOffset.AddMinutes(menit) DATEADD(menit, @minutes, @dateTimeOffset)
dateTimeOffset.AddMonths(bulan) DATEADD(bulan, @months, @dateTimeOffset)
dateTimeOffset.AddSeconds(detik) DATEADD(detik, @seconds, @dateTimeOffset)
dateTimeOffset.AddYears(years) DATEADD(year, @years, @dateTimeOffset)
dateTimeOffset.Date CONVERT(date, @dateTimeOffset)
dateTimeOffset.Day DATEPART(hari, @dateTimeOffset)
dateTimeOffset.DayOfYear DATEPART(dayofyear, @dateTimeOffset)
dateTimeOffset.Hour DATEPART(jam, @dateTimeOffset)
dateTimeOffset.Microsecond DATEPART(microsecond, @dateTimeOffset) % 1000 EF Core 10.0
dateTimeOffset.Millisecond DATEPART(milidetik, @dateTimeOffset)
dateTimeOffset.Minute DATEPART(menit, @dateTimeOffset)
dateTimeOffset.Month DATEPART(bulan, @dateTimeOffset)
dateTimeOffset.Nanosecond DATEPART(nanodetik, @dateTimeOffset) % 1000 EF Core 10.0
dateTimeOffset.Second DATEPART(detik, @dateTimeOffset)
dateTimeOffset.WaktuDalamSehari CONVERT(time, @dateTimeOffset)
dateTimeOffset.ToUnixTimeSeconds() DATEDIFF_BIG(detik, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset)
dateTimeOffset.ToUnixTimeMilliseconds() DATEDIFF_BIG(milidetik, '1970-01-01T00:00:00.0000000+00:00', @dateTimeOffset)
dateTimeOffset.Year DATEPART(tahun, @dateTimeOffset)
DateOnly.FromDateTime(dateTime) CONVERT(date, @dateTime)
dateOnly.AddDays(value) DATEADD(hari, @value, @dateOnly)
dateOnly.AddMonths(bulan) DATEADD(bulan, @months, @dateOnly)
dateOnly.AddYears(value) DATEADD(year, @value, @dateOnly)
dateOnly.Day DATEPART(hari, @dateOnly)
dateOnly.DayOfYear DATEPART(dayofyear, @dateOnly)
dateOnly.Month DATEPART(bulan, @dateOnly)
dateOnly.Tahun DATEPART(tahun, @dateOnly)
dateOnly.DayNumber DATEDIFF(hari, '0001-01-01', @dateOnly) EF Core 10.0
EF. Functions.AtTimeZone(dateTime, timeZone) @dateTime DI ZONA WAKTU @timeZone
EF.Functions.DateDiffDay(start, end) DATEDIFF(hari, @start, @end)
EF.Functions.DateDiffHour(start, end) DATEDIFF(jam, @start, @end)
EF.Functions.DateDiffMicrosecond(start, end) DATEDIFF(microsecond, @start, @end)
EF.Functions.DateDiffMillisecond(start, end) DATEDIFF(milidetik, @start, @end)
EF.Functions.DateDiffMinute(start, end) DATEDIFF(menit, @start, @d2)
EF.Functions.DateDiffMonth(start, end) DATEDIFF(bulan, @start, @end)
EF.Functions.DateDiffNanosecond(start, end) DATEDIFF(nanosekon, @start, @end)
EF.Functions.DateDiffSecond(start, end) DATEDIFF(detik, @start, @end)
EF.Functions.DateDiffWeek(start, end) DATEDIFF(minggu, @start, @end)
EF.Functions.DateDiffYear(start, end) DATEDIFF(tahun, @start, @end)
EF.Functions.DateFromParts(tahun, bulan, hari) DATEFROMPARTS(@year, @month, @day)
EF.Functions.DateTime2FromParts(year, month, day, ...) DATETIME2FROMPARTS(@year, @month, @day, ...)
EF. Functions.DateTimeFromParts(year, month, day, ...) DATETIMEFROMPARTS(@year, @month, @day, ...)
EF.Functions.DateTimeOffsetFromParts(tahun, bulan, hari, ...) DATETIMEOFFSETFROMPARTS(@year, @month, , @day...)
EF. Functions.IsDate(expression) ISDATE(@expression)
EF.Functions.SmallDateTimeFromParts(tahun, bulan, hari, ...) SMALLDATETIMEFROMPARTS(@year, , @month, @day...)
EF. Functions.TimeFromParts(jam, menit, detik, ...) TIMEFROMPARTS(@hour, @minute, @second, ...)
timeOnly.AddHours(value) DATEADD(jam, @value, @timeOnly)
timeOnly.AddMinutes(value) DATEADD(menit, @value, @timeOnly)
timeOnly.Hour DATEPART(jam, @timeOnly)
timeOnly.IsBetween(start, end) yang berarti nilai "timeOnly" berada di antara "start" dan "end". @timeOnly >= @start DAN @timeOnly<@end
timeOnly.Microsecond DATEPART(microsecond, @timeOnly) % 1000 EF Core 10.0
timeOnly.Millisecond DATEPART(milidetik, @timeOnly)
timeOnly.Minute DATEPART(menit, @timeOnly)
timeOnly.Nanosecond DATEPART(nanodetik, @timeOnly) % 1000 EF Core 10.0
timeOnly.Second DATEPART(detik, @timeOnly)
timeSpan.Hours DATEPART(jam, @timeSpan)
timeSpan.Microsecond DATEPART(microsecond, @timeSpan) % 1000 EF Core 10.0
timeSpan.Milliseconds DATEPART(milidetik, @timeSpan)
timeSpan.Minutes DATEPART(menit, @timeSpan)
timeSpan.Nanosecond DATEPART(nanodetik, @timeSpan) % 1000 EF Core 10.0
timeSpan.Seconds DATEPART(detik, @timeSpan)

Fungsi numerik

.NET SQL Ditambahkan dalam
dobel. DegreesToRadians(x) RADIANS(@x)
dobel. RadiansToDegrees(x) DEGREES(@x)
EF.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) FLOOR(@d)
Math.Log(d) LOG(@d)
Math.Log(a, newBase) LOG(@a, @newBase)
Math.Log10(d) LOG10(@d)
Math.Max(x, y) GREATEST(@x, @y) EF Core 9.0
Math.Min(x, y) LEAST(@x, @y) EF Core 9.0
Math.Pow(x, y) POWER(@x, @y)
Math.Round(d) ROUND(@d, 0)
Math.Round(d, desimal) ROUND(@d, @decimals)
Math.Sign(value) SIGN(@value)
Math.Sin(a) SIN(@a)
Math.Sqrt(d) SQRT(@d)
Math.Tan(a) TAN(@a)
Math.Truncate(d) ROUND(@d, 0, 1)

Petunjuk

Selain metode yang tercantum di sini, implementasi matematika generik yang sesuai dan metode MathF juga diterjemahkan. Misalnya, Math.Sin, MathF.Sin, double.Sin, dan float.Sin semuanya memetakan ke fungsi SIN dalam SQL.

Fungsi string

.NET SQL Ditambahkan dalam
EF.Functions.Collate(operand, collation) @operand KOLOKASI @collation
EF.Functions.Contains(propertyReference, searchCondition) CONTAINS(@propertyReference, @searchCondition)
EF.Functions.Contains(propertyReference, searchCondition, languageTerm) CONTAINS(@propertyReference, @searchCondition, LANGUAGE @languageTerm)
EF.Functions.FreeText(propertyReference, freeText) FREETEXT(@propertyReference, @freeText)
EF. Functions.FreeText(propertyReference, freeText, languageTerm) FREETEXT(@propertyReference, @freeText, LANGUAGE @languageTerm)
EF.Functions.IsNumeric(expression) ISNUMERIC(@expression)
EF.Functions.Like(matchExpression, pattern) @matchExpression SUKA @pattern
EF.Functions.Like(matchExpression, pattern, escapeCharacter) @matchExpression LIKE @pattern ESCAPE @escapeCharacter
string.Compare(strA, strB) KASUS KAPAN @strA = @strB KEMUDIAN 0 ... END
string.Concat(str0, str1) @str0 + @str1
string.IsNullOrEmpty(value) @value ADALAH NULL ATAU @value SEPERTI N''
string.IsNullOrWhiteSpace(value) @value ADALAH NULL ATAU @value = N''
string.Join(", ", new [] { x, y, z}) CONCAT_WS(N', ', @x, @y, @z)) EF Core 9.0
stringValue.CompareTo(strB) WHEN @stringValue = @strB MAKA 0 ... AKHIR
stringValue.Contains(value) @stringValue SEPERTI 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
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(RTRIM(@stringValue))
stringValue.TrimEnd() RTRIM(@stringValue)
stringValue.TrimStart() LTRIM(@stringValue)

Fungsi lain

.NET SQL Ditambahkan dalam
enumValue.HasFlag(flag) @enumValue & @flag = @flag
Guid.NewGuid() NEWID()
nullable.GetValueOrDefault() COALESCE(@nullable, 0)
dapat diubah ke null. GetValueOrDefault(defaultValue) COALESCE(@nullable, @defaultValue)

Catatan

Beberapa terjemahan SQL telah disederhanakan untuk tujuan ilustrasi. SQL aktual lebih kompleks untuk menangani berbagai nilai yang lebih luas.

Lihat juga