Filtrar por fecha con DataTable.RowFilter sin tener en cuenta el tiempo
-
19-09-2019 - |
Pregunta
¿Cómo filtro para el registro de un DataTable que se encuentran en una fecha determinada?
He intentado [datecol] = #11 March 2010#
simple y CONVERT([datecol],'System.DateTime') = #11 March 2010#
. Sin suerte.
de MSDN: Expresión RowFilter Sintaxis
Solución
[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
Solución
select
...
...
...
where [datecol] between '11 March 2010 00:00:00' and '11 March 2010 23:59:59'
Lo sentimos, la cabeza mal en. Sólo estado escribiendo un montón de SQL !!
Probar
[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'
Otros consejos
select * from [X] WHERE DATEDIFF(dd,[datecol],'3/11/2010') = 0
Hay una gran cantidad de energía con la función DateDiff,
DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0)
es otra manera se puede despojar a la porción de tiempo de la columna si necesita que los datos de otro proceso. Utilizamos esta si estamos queriendo para agrupar los elementos que se producen durante el día, o algunos otros usos si necesitamos para agrupar los elementos que se producen durante horas o después de las horas.
Puede utilizar siguiente código de LINQ para filtrar DataTable fila-establecido de acuerdo a la fecha:
var resultSet = from tbl in dt.AsEnumerable()
where tbl.Field<DateTime>("ColName").ToString("dd/MMM/yyyy") == "07/Aug/2010"
select tbl;
Además, para conseguir la penetración de las consultas LINQ básicas en tablas de datos vean el mensaje Filtrado DataTable utilizando LINQ
mejores Rgds