Сравнение частей даты в LINQ - PullRequest
3 голосов
/ 08 октября 2011

Как в LINQ to SQL сравнить только часть даты столбца sql datetime и объекта .net datetime?

Ответы [ 5 ]

2 голосов
/ 08 октября 2011

Попробуйте использовать свойство Date обоих:

Date today = DateTime.Today; // Effectively DateTime.Now.Date

var dataFromToday = from record in context.Records
                    where record.TimeStamp.Date == today
                    select record;

Я считаю это работает для LINQ to SQL ... как говорит tvanfosson, это не для EF.

1 голос
/ 14 сентября 2014
using System.Data.Entity;

DbFunctions.TruncateTime(u.BirthDate) = DbFunctions.TruncateTime(someDate)
1 голос
/ 08 октября 2011

Linq to SQL поддерживает перевод свойства Date в SQL для сравнения и т. Д. Более подробную информацию о поддерживаемых параметрах можно найти в MSDN .

0 голосов
/ 13 сентября 2012
using System.Data.Objects.SqlClient; //Don't forget this!!

//You can access to SQL DatePart function using something like this:

YourTable.Select(t => new { DayOfWeek = SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 }); //Zero based in SQL

//You can compare to SQL DatePart function using something like this:

DateTime dateToCompare = DateTime.Today;
YourTable.Where(t => SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 == dateToCompare }); //Zero based in SQL
0 голосов
/ 08 октября 2011

Вы можете создать пользовательскую функцию CLR, чтобы сравнивать только даты, а затем ссылаться на них в запросе linq to sql linq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...