Дата сравнения в LINQ - PullRequest
       4

Дата сравнения в LINQ

1 голос
/ 04 июля 2011

Я искал сравнение даты в LINQ и нашел код из поиска в Google.

var currentDate = DateTime.Now.Date;

VisitorLog log = db.Context.VisitorLogs .Where (vl => vl.inDate.Date ==currentDate) .irstOrDefault ();

Мне нужно знать, что приведенный выше код работает нормально или нет.

Как мне сравнить дату в определенном формате, как я сравниваю дату на сервере SQL

compare(varchar(10),mydatefield,112)>=compare(varchar(10),@mydatefield,112)

, пожалуйста, объясните мне, как я могу сравнить дату, используя linq в определенном формате, как указано выше.

спасибо

Ответы [ 3 ]

1 голос
/ 04 июля 2011

Дело в том, что вы редко будете сравнивать даты в определенном формате (если вы не хотите сравнивать их как строки или что-то в этом роде). Таким образом, введение структуры DateTime.

В любом случае, наиболее часто используемый способ сравнения дат состоит не в проверке на равенство, а в том, чтобы фактически проверить, попадает ли дата в определенный диапазон. Например:

startDate <= order.OrderDate && order.OrderDate < endDate
1 голос
/ 04 июля 2011

Может ли эта ссылка помочь вам?

Как сравнить даты в LINQ?

where t.CreateDate.Date < DateTime.Today.AddMonths(-1)
0 голосов
/ 04 июля 2011

Формат имеет значение, когда вы анализируете строку для объекта DateTime.После того, как вы это сделали, и у вас есть два объекта DateTime, тогда сравнение их свойств Date будет правильным решением.Свойства Date возвращают объекты DateTime со временем, установленным на 12:00

. Для правильного анализа даты можно передать IFormatProvider методу DateTime.Parse ().Например, объект CultureInfo:

DateTime d = DateTime.Parse("07/04/2011", CultureInfo.GetCultureInfo("en-us"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...