Я хотел бы предложить, а не ограничивающей дату, просто решить, сколько результатов вы хотите, и выбрать TOP(x)
их количество:
Например, если вы хотите 20 последних результатов, начиная сегодня и уходящие на завтра (и далее), если это необходимо, вы можете сделать это:
"SELECT TOP(20) * FROM table1 WHERE cat = 1 ORDER BY datee DESC ";
Если pottentially есть даты в будущем вы можете ограничить их, добавив следующее где пункт:
"SELECT TOP(20) * FROM table1 WHERE cat = 1 AND datee <= @dt ORDER BY datee DESC ";
Где @dt
Дата сегодня
Конечно, если вы правила более конкретно, то есть вы должны вернуть 24 результаты, если сегодня имеет 24 записей, или вы не хотите, в общей сложности ограничено в таким образом, то я предложил бы делать два запроса, например:
var results = GetResultsForToday();
if(results.Count() < 20)//not enough!
result.Add(GetResultsForYesterday());
Лучше всего отказаться от предложения 'datee' where и просто добавить выбор« TOP (x) », чтобы узнать, сколько результатов вы считаете приемлемыми – musefan