Использование функции SQL с датируемыми результатами - PullRequest
1 голос
/ 12 февраля 2012

У меня есть таблица базы данных со столбцом DATETIME.Что я хочу сделать, это определить, совпадает ли часть даты в записи с частью даты сегодняшнего дня.Тем не менее, у меня есть объект данных, и я не могу использовать daUsage.Select с функцией SQL DATEPART.

Итак, я спрашиваю, есть ли способ отфильтровать результаты из данных без использования функции select.Если это возможно, как это сделать?Я мог бы использовать LINQ, но я довольно новичок в этом, и я чувствую, что должен быть лучший способ сделать это.

Спасибо

1 Ответ

2 голосов
/ 12 февраля 2012

Вы можете использовать DataTable.Выберите , чтобы проверить, находится ли ваша дата между 0 часами этого дня и 0 часами следующего дня:

string selectString = String.Format("DateColumn >= '{0}' AND DateColumn < '{1}'",
                      DateTime.Today.ToString(DateTimeFormatInfo.InvariantInfo), 
                      DateTime.Today.AddDays(1).ToString(DateTimeFormatInfo.InvariantInfo));
bool hasTodayRecords = dt.Select(selectString).Length > 0;

На этом пути вы получаете только сегодняшние записи.

В LINQ вы можете сравнить DateTime.Date с DateTime.Today:

bool hasTodayRecords = dt.AsEnumerable().
     Any(r => DateTime.Today.Equals(((DateTime)r["DateColumn"]).Date));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...