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;
我等着帮你 ;)
嗨,我需要 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;
我等着帮你 ;)