在sql和linq中选择2 Date之间的数据

时间:2017-06-02 10:22:21

标签: sql sql-server linq linq-to-sql sql-query-store

嗨我需要在2个日期之间选择一些数据我可以使用sql查询轻松完成此操作:
SELECT * FROM tbl_Check WHERE StudentId = 9 AND CheckDate >= 2010 AND CheckDate <= 2017


注意:Sql Table中的CheckDate类型是:NVARCHAR(12)

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

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


3 个答案:

答案 0 :(得分:1)

您可能需要转换为日期并使用year()函数来检查如下:

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

答案 1 :(得分:1)

你也可以这样做

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

答案 2 :(得分:1)

如果您的字段为$ sudo /usr/local/bin/searchd --config /usr/local/etc/sphinx.conf 但值仅为NVARCHAR(12),则可以转换YEAR中的列。

试试。

INT

我等着这个帮助你;)