使用SQL db存储过程以返回产品的所有值。在存储过程结束时,订单显示为
ORDER BY pf.rownum
我尝试在存储过程中包含此行以显示最近60天的产品
where
CreatedOn >=dateadd(day,datediff(day,0,GetDate())- 60,0)
但我认为在日期创建的产品超出了日期范围。有没有办法在ORDER BY行中包含日期选择并删除此CreatedOn值?
这是在AspDotNetStoreFront
中谢谢!
答案 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是日期时间而您没有这样做,那么如果数据包含在结果中,时间将会影响。