0

假设我想要记录日期为“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 得到了三月的月份记录,而不是七月。如何弄清楚这个问题?

4

2 回答 2

1

您正在比较日期/时间的字符串表示形式,这取决于当前系统的格式选项。使用日期文字(必须在 '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)
于 2013-07-04T07:05:17.777 回答
0

应该是这样的:

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

Month先通过,所以它解析三月。更改toString顺序,以便您通过前几天和一个月。(七月)

于 2013-07-04T07:05:47.750 回答