使用SQL Order语句显示记录的最近60天

时间:2014-06-25 16:07:05

标签: sql aspdotnetstorefront

使用SQL db存储过程以返回产品的所有值。在存储过程结束时,订单显示为

ORDER BY pf.rownum 

我尝试在存储过程中包含此行以显示最近60天的产品

where
CreatedOn >=dateadd(day,datediff(day,0,GetDate())- 60,0)

但我认为在日期创建的产品超出了日期范围。有没有办法在ORDER BY行中包含日期选择并删除此CreatedOn值?

这是在AspDotNetStoreFront

谢谢!

2 个答案:

答案 0 :(得分:2)

您是否询问如何按两列排序?
如果是,则下面的代码应该这样做。

ORDER BY pf.rownum ASC, pf.CreatedOn DESC 

答案 1 :(得分:2)

我认为你的语法在where子句中是错误的。我不确定您使用datediff(day, 0, GetDate())的原因。拿出来然后使用dateadd(dd, -60, cast(Getdate() as date))。命令的唯一方法是告诉sql如何对结果进行排序。 order by不应影响返回或未返回的数据。

根据CreatedOn存储的数据类型,您可能需要执行

cast(CreatedOn as date) >= dateadd(dd, -60, cast(Getdate() as date))

如果CreatedOn是日期时间而您没有这样做,那么如果数据包含在结果中,时间将会影响。