如何在vb.net中检查linq比较日期格式

时间:2013-07-04 07:01:50

标签: vb.net linq datetime

说我想要记录日期" 07/03/2013"格式为" MM / dd / yyyy"。 我在linq中的表达将是:

_dbContext.EmployeeDetails.Where(Function(f) f.EmpId = _empId And f.Date="07/03/2013")

这里linq如何管理日期格式为" MM / dd / yyyy"。或者如何比较" f.Date" MM / dd / yyyy?

说, 如果我做了

_dbContext.EmployeeDetails.Where(Function(f) f.EmpId = _empId And f.Date.ToString("MM/dd/yyyy")="07/03/2013")

它不允许我。假设我的约会对象将是" 07/13/2013"那么我们可以认为匹配并将格式与"f.Date"同步,但是日期不到12?事实上,通过使用第一个表达式,m获得三月份的记录,而不是七月份。 如何弄清楚这个问题?

2 个答案:

答案 0 :(得分:1)

您正在比较日期/时间的字符串表示,这取决于当前系统的格式选项。使用date literal(必须在'M / d / yyyy'中)创建新的DateTime对象:

_dbContext.EmployeeDetails.Where(Function(f) f.EmpId = _empId And f.Date=#3/7/2013#)

如果它是变量,请说dte

_dbContext.EmployeeDetails.Where(Function(f) f.EmpId = _empId And f.Date=dte)

答案 1 :(得分:0)

应该是这样的:

_dbContext.EmployeeDetails.Where
   (Function(f) f.EmpId = _empId And
                f.Date.ToString("dd/MM/yyyy")="07/03/2013")

你首先传递Month,所以它解析March。更改toString订单,以便您在之前和之后的几天内通过。 (7月)