从昨天获取存储在数据库中的条目

时间:2013-06-14 10:39:17

标签: c# asp.net sql database

我有一个SQL语句,根据今天的日期获取一些数据,并在linkbutton.Text中填充它。如果今天没有足够的数据,它应该填充昨天的数据。这是我到目前为止写的SQL语句:

"SELECT * FROM table1 WHERE cat = 1 and datee = @dt ORDER BY datee DESC ";

2 个答案:

答案 0 :(得分:1)

我建议而不是限制日期,只需确定您想要的结果数量,然后选择TOP(x)个数字:

例如,如果您想要从今天开始的20个最新结果,并在需要时返回明天(以及更远),您可以这样做:

"SELECT TOP(20) * FROM table1 WHERE cat = 1 ORDER BY datee DESC ";

如果您将来可能会有日期,可以通过添加以下where子句来限制它们:

"SELECT TOP(20) * FROM table1 WHERE cat = 1 AND datee <= @dt  ORDER BY datee DESC ";

@dt是今天的日期


当然,如果您的规则更具体,即如果今天有24个条目您应该返回24个结果,或者您不希望以这种方式限制总数,那么我建议做两个查询,例如:< / p>

var results = GetResultsForToday();

if(results.Count() < 20)//not enough!
    result.Add(GetResultsForYesterday());

答案 1 :(得分:0)

或者您可以使用BETWEEN以外的TOP语句,如:

SELECT TOP(10) * FROM table1 WHERE cat = 1 and  
datee BETWEEN DATEADD(day, -1, @dt) AND @dt 
ORDER BY datee DESC