Select sql 中的 2 个日期和 linq 之间的数据

Select data between 2 Date in sql and linq

嗨,我需要 select 2 个日期之间的一些数据,我可以使用 sql 查询轻松做到这一点:
SELECT * FROM tbl_Check WHERE StudentId = 9 AND CheckDate >= 2010 AND CheckDate <= 2017


注:SqlTable中的CheckDate类型为:NVARCHAR(12)

现在我想在 linq 中使用这个查询,我写了这个但是我得到错误,运算符 >= 不能应用于字符串和字符串类型的操作数。

from val in dc.CheckVs
            where val.StudentId == 9 &&
                  val.CheckDate >= txtDate1.Text &&
                  val.CheckDate <= txtDate2.Text
                  select val;


您可能需要转换成日期并使用 year() 函数进行检查,如下所示:

SELECT * FROM  tbl_Check
  WHERE StudentId = 9
  AND year(convert(date,CheckDate)) >= 2010
  AND year(convert(date,CheckDate)) <= 2017

你也可以这样做

SELECT * FROM  tbl_Check
  WHERE StudentId = 9
  AND (YEAR(CheckDate) BETWEEN 2010 AND 2017)

如果您的字段是 NVARCHAR(12) 但值只有 YEAR 您可以转换 INT.

中的列

试试看。

from val in dc.CheckVs
where val.StudentId == 9 &&
      Convert.ToInt32(val.CheckDate.Tostring()) >= Convert.ToInt32(txtDate1.Text) &&
      Convert.ToInt32(val.CheckDate.Tostring()) <= Convert.ToInt32(txtDate2.Text)
select val;

我等着帮你 ;)