Фильтрация по дате с помощью DataTable.RowFilter, игнорируя время

StackOverflow https://stackoverflow.com/questions/2426819

Вопрос

Как отфильтровать записи в DataTable, относящиеся к определенной дате?

Я пробовал простой [datecol] = #11 March 2010# и CONVERT([datecol],'System.DateTime') = #11 March 2010#.Безуспешно.

MSDN:Синтаксис выражения RowFilter

Решение

[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
Это было полезно?

Решение

select 
   ...
   ...
   ...

where [datecol] between '11 March 2010 00:00:00' and '11 March 2010 23:59:59'

Извините, ошибся в голове.Просто писал МНОГО SQL!!

Попробуй это

[datecol] >= #03/11/2010 00:00:00# AND [datecol] <= #03/11/2010 23:59:59# 

или

 [datecol] >= '03/11/2010 00:00:00' AND [datecol] <= '03/11/2010 23:59:59' 

Другие советы

select * from [X] WHERE DATEDIFF(dd,[datecol],'3/11/2010') = 0

Функция dateiff обладает огромной мощью,

DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0) это еще один способ удалить временную часть из столбца, если эти данные нужны вам для другой обработки.Мы используем это, если хотим сгруппировать события, происходящие в течение дня, или для других целей, если нам нужно сгруппировать элементы, происходящие в часы или после закрытия.

Вы можете использовать следующий код LINQ для фильтрации набора строк DataTable по дате:

var resultSet = from tbl in dt.AsEnumerable()
                where tbl.Field<DateTime>("ColName").ToString("dd/MMM/yyyy") == "07/Aug/2010"
                select tbl;

Кроме того, чтобы получить представление об основных запросах LINQ к DataTables, см. сообщение Фильтрация DataTable с использованием LINQ

лучшие рекомендации

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top