Опитвам се:
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 след това....използвайте тази променлива в Query