Pergunta

Como eu filtro para registros em um DataTable que são em certa data?

Eu tentei [datecol] = #11 March 2010# simples e CONVERT([datecol],'System.DateTime') = #11 March 2010#. Sem sorte.

MSDN: RowFilter Expression Syntax

Solução

[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
Foi útil?

Solução

select 
   ...
   ...
   ...

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

Desculpe, cabeça errada. Apenas sido escrever um monte de SQL !!

Tente este

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

ou

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

Outras dicas

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

Há uma grande quantidade de energia com a função datediff,

DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0) é uma outra maneira você pode tira a parte do tempo a partir da coluna, se você precisa que os dados para outro processamento. Usamos este se nós estamos esperando para agrupar os itens que ocorrem durante o dia, ou alguns outros usos se precisamos para agrupar os itens que ocorrem durante horas ou depois de horas.

Você pode usar o seguinte código LINQ para filtrar DataTable linha-set acordo com a data:

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

Além disso, para obter o insight de consultas básicas LINQ em DataTables ver o post Filtering DataTable usando o LINQ

melhores Rgds

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top