使用带有数据表结果的SQL函数

时间:2012-02-12 19:13:04

标签: c# datatable

我有一个带有DATETIME列的数据库表。我想要做的是确定记录的日期部分是否与今天的日期部分相同。但是,我有一个datatable对象,我不能使用daUsage.Select与SQL函数DATEPART。

所以我要问的是,是否有一种方法可以在不使用select函数的情况下从数据表中过滤结果。如果可能的话怎么做?我可以使用LINQ,但我对它很陌生,我觉得必须有更好的方法来做到这一点。

由于

1 个答案:

答案 0 :(得分:2)

您可以使用DataTable.Select检查您的日期是否在当天下午0点0点之间:

string selectString = String.Format("DateColumn >= '{0}' AND DateColumn < '{1}'",
                      DateTime.Today.ToString(DateTimeFormatInfo.InvariantInfo), 
                      DateTime.Today.AddDays(1).ToString(DateTimeFormatInfo.InvariantInfo));
bool hasTodayRecords = dt.Select(selectString).Length > 0;

通过这种方式,您只能获得今天的记录。

在LINQ中,您可以将DateTime.DateDateTime.Today进行比较:

bool hasTodayRecords = dt.AsEnumerable().
     Any(r => DateTime.Today.Equals(((DateTime)r["DateColumn"]).Date));