попробуйте сделать это так:
select ID, Datetime from Table where Datetime < '2010-04-01'
Я всегда задаю дату и время, но просто использую "<" меньше, чем. </p>
для использования даты и времени в дневное время:
SELECT DATEADD(day,DATEDIFF(day,0, GETDATE() ),0)
Вы можете легко увеличить дату и время, используя сложение:
SELECT GETDATE()+1
с помощью '23: 59: 59 'вы можете пропустить строки, попробуйте:
DECLARE @YourTable table (RowID int, DateOf datetime)
INSERT INTO @YourTable VALUES (1,'2010-03-31 10:00')
INSERT INTO @YourTable VALUES (2,'2010-03-31')
INSERT INTO @YourTable VALUES (3,'2010-03-31 23:59:59')
INSERT INTO @YourTable VALUES (4,'2010-03-31 23:59:59.887')
INSERT INTO @YourTable VALUES (5,'2010-04-01')
INSERT INTO @YourTable VALUES (6,'2010-04-01 10:00')
select * from @YourTable where DateOf <= '2010-03-31 23:59:59'
OUTPUT
RowID DateOf
----------- -----------------------
1 2010-03-31 10:00:00.000
2 2010-03-31 00:00:00.000
3 2010-03-31 23:59:59.000
(3 row(s) affected
этот запрос неверен, поскольку он не находит пропущенную запись rowID = 4.
если вы попытаетесь исправить это с помощью:
select * from @YourTable where DateOf <= '2010-03-31 23:59:59.999'
тогда будет включен RowID = 5, что неверно.