Filtraggio per data con DataTable.RowFilter ignorando tempo
-
19-09-2019 - |
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#
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