Kuidas teha SQL Serveris päring kõigi kuupäevade kohta, mis on suuremad kui teatud kuupäev?

Ma püüan:

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;

A.Date näeb välja: 2010-03-04 00:00:00.000

See aga ei tööta.

Kas keegi oskab anda viite, miks?

Lahendus
select *  
from dbo.March2010 A 
where A.Date >= Convert(datetime, '2010-04-01' )

Teie päringus käsitletakse 2010-4-01 matemaatilise väljendusena, nii et sisuliselt on see järgmine

select *  
from dbo.March2010 A 
where A.Date >= 2005; 

(2010 miinus 4 miinus 1 on 2005). Selle probleemi parandab selle teisendamine korralikuks datetime ja ühekordsete jutumärkide kasutamine).

Tehniliselt võib parser lubada teil pääseda koos

select *  
from dbo.March2010 A 
where A.Date >= '2010-04-01'

ta teeb teisenduse teie eest, kuid minu arvates on see vähem loetav kui selgesõnaline teisendamine DateTime-iks hoolduse programmeerija jaoks, kes tuleb pärast teid.

Kommentaarid (4)

Proovige ümbritseda oma kuupäeva tähemärkide stringiga.

 select * 
 from dbo.March2010 A
 where A.Date >= '2010-04-01';
Kommentaarid (1)
DateTime start1 = DateTime.Parse(txtDate.Text);

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= start1;

Esmalt konverteerige TexBox Datetime'iks, siis....kasutage seda muutujat Query'sse.

Kommentaarid (0)