Domanda

Come faccio a filtrare per le registrazioni in un DataTable, che sono in una certa data?

Ho provato [datecol] = #11 March 2010# pianura e CONVERT([datecol],'System.DateTime') = #11 March 2010#. Senza fortuna.

MSDN: RowFilter Expression Syntax

Soluzione

[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
È stato utile?

Soluzione

select 
   ...
   ...
   ...

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

Siamo spiacenti, testa sbagliato. Sono appena stato a scrivere un sacco di SQL !!

Prova questo

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

o

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

Altri suggerimenti

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

C'è un sacco di potenza con la funzione DateDiff,

DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0) è un altro modo è possibile togliere la parte di tempo dalla colonna se è necessario che i dati per altre elaborazioni. Usiamo questo se stiamo voler raggruppare gli elementi che si verificano durante il giorno, o di alcuni altri usi se abbiamo bisogno di raggruppare gli elementi che si verificano durante o dopo ore ore.

È possibile utilizzare seguente codice LINQ per filtrare DataTable row-impostata in base alla data:

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

Inoltre, per ottenere l'intuizione di query LINQ di base sulla DataTable vedere il post Filtri DataTable utilizzando LINQ

migliori Rgds

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top