我有一个带有DATETIME列的数据库表。我想要做的是确定记录的日期部分是否与今天的日期部分相同。但是,我有一个datatable对象,我不能使用daUsage.Select与SQL函数DATEPART。
所以我要问的是,是否有一种方法可以在不使用select函数的情况下从数据表中过滤结果。如果可能的话怎么做?我可以使用LINQ,但我对它很陌生,我觉得必须有更好的方法来做到这一点。
由于
答案 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.Date与DateTime.Today
进行比较:
bool hasTodayRecords = dt.AsEnumerable().
Any(r => DateTime.Today.Equals(((DateTime)r["DateColumn"]).Date));