Я стараюсь:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
выглядит как: 2010-03-04 00:00:00.000
Однако это не работает.
Может ли кто-нибудь дать ссылку, почему?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
В вашем запросе 2010-4-01
рассматривается как математическое выражение, поэтому по сути оно читается как
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 минус 4 минус 1 - 2005
).
Преобразование его в правильное время даты
и использование одинарных кавычек исправит эту проблему).
Технически, синтаксический анализатор может позволить вам обойтись без следующих действий
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
он сделает преобразование за вас, но, на мой взгляд, это менее читабельно, чем явное преобразование в DateTime
для программиста, который придет после вас.
Попробуйте заключить дату в символьную строку.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
DateTime start1 = DateTime.Parse(txtDate.Text);
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= start1;
Сначала преобразуйте TexBox в Datetime затем.... используйте эту переменную в запросе