Question

Comment filtrer les enregistrements sur un DataTable qui sont à une certaine date?

J'ai essayé [datecol] = #11 March 2010# simple et CONVERT([datecol],'System.DateTime') = #11 March 2010#. Sans chance.

MSDN: Expression RowFilter Syntaxe

Solution

[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
Était-ce utile?

La solution

select 
   ...
   ...
   ...

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

Désolé, mauvaise tête. Juste été écrire beaucoup de SQL !!

Essayer cette

[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' 

Autres conseils

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

Il y a beaucoup de puissance avec la fonction datediff,

DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0) est une autre façon, vous pouvez enlever la partie du temps de la colonne si vous avez besoin que les données pour d'autres traitements. Nous utilisons si nous sommes vouloir regrouper des éléments qui se produisent au cours de la journée, ou d'autres utilisations si nous avons besoin de regrouper les éléments qui se produisent pendant les heures ou après les heures.

Vous pouvez utiliser le code suivant LINQ pour filtrer DataTable rowset selon la date:

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

De plus, pour obtenir l'aperçu des requêtes LINQ de base sur DataTables voir le message

scroll top