Deniyorum:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Dategibi görünür:
2010-03-04 00:00:00.000`
Ancak, bu işe yaramıyor.
Biri nedenini açıklayabilir mi?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Sorgunuzda, 2010-4-01
matematiksel bir ifade olarak ele alınır, bu nedenle özünde şöyle okunur
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 eksi 4 eksi 1 2005
tir)
Bunu uygun bir tarih saatine
dönüştürmek ve tek tırnak kullanmak bu sorunu çözecektir).
Teknik olarak, ayrıştırıcı şunları yapmanıza izin verebilir
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
sizin için dönüşümü yapacaktır, ancak bence sizden sonra gelecek bakım programcısı için açıkça bir DateTime
a dönüştürmekten daha az okunabilir.