Deniyorum:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
şuna benzer: 2010-03-04 00:00:00.000
Ancak, bu çalışmıyor.
Neden biri için bir referans sağlayabilir?
Deniyorum:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
şuna benzer: 2010-03-04 00:00:00.000
Ancak, bu çalışmıyor.
Neden biri için bir referans sağlayabilir?
Yanıtlar:
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 yüzden aslında
select *
from dbo.March2010 A
where A.Date >= 2005;
( 2010 minus 4 minus 1 is 2005
Düzgün bir biçime dönüştürmek datetime
ve tek tırnak işareti kullanmak bu sorunu çözecektir.)
Teknik olarak, ayrıştırıcı,
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
sizin için dönüşümü yapacak, ancak bence DateTime
, sizden sonra gelecek olan bir bakım programcısı için açıkça dönüştürülmekten daha az okunabilir .
SET LANGUAGE FRENCH
. :-) Bu tarih için 1 Nisan yerine 4 Ocak alacaksınız. Diğer tarihler için bunun yerine bir hata alabilirsiniz.
CONVERT(datetime, '20100401 10:01:01')
- 2010-04-01 geçen SQL Server Management Studio çalışır ama PHP / MSSQL yoluyla SQL deyimi gönderirken değil.
Tarihinizi bir karakter dizesine eklemeyi deneyin.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Aşağıdaki gibi de kullanabiliriz
SELECT *
FROM dbo.March2010 A
WHERE CAST(A.Date AS Date) >= '2017-03-22';
SELECT *
FROM dbo.March2010 A
WHERE CAST(A.Date AS Datetime) >= '2017-03-22 06:49:53.840';
DateTime start1 = DateTime.Parse(txtDate.Text);
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= start1;
Önce TexBox'ı Datetime'a çevirin, sonra ... bu değişkeni Sorguya kullanın