Выберите данные между 2 Дата в sql и linq
Привет мне нужно выбрать некоторые данные между 2 дата, я могу сделать это легко с SQL-запросом, как это:SELECT * FROM tbl_Check
WHERE
StudentId = 9
AND
CheckDate >= 2010
AND
CheckDate <= 2017
Примечание. Тип CheckDate в таблице Sql: NVARCHAR(12).
теперь я хочу использовать этот запрос в linq я написал этот, но я получаю ошибку, что оператор>= не может применяться к операнду типа строка и строка.
from val in dc.CheckVs
where val.StudentId == 9 &&
val.CheckDate >= txtDate1.Text &&
val.CheckDate <= txtDate2.Text
select val;
3 ответа
Решение
Если вы поле 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 * FROM tbl_Check
WHERE StudentId = 9
AND (YEAR(CheckDate) BETWEEN 2010 AND 2017)
Вам может потребоваться преобразовать в date и использовать функцию year(), чтобы проверить это, как показано ниже:
SELECT * FROM tbl_Check
WHERE StudentId = 9
AND year(convert(date,CheckDate)) >= 2010
AND year(convert(date,CheckDate)) <= 2017