说我想要记录日期" 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获得三月份的记录,而不是七月份。
如何弄清楚这个问题?
答案 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月)