Sql 获取从前一天开始的最后14天(2周)的日期表
我想写一个查询,给出过去14天的日期列 从昨天开始 例如:Sql 获取从前一天开始的最后14天(2周)的日期表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想写一个查询,给出过去14天的日期列 从昨天开始 例如: Dates 2012-06-21 2012-06-20 2012-06-19 -- - 另一种方式 ;with days(day) as ( select getdate() - 1 as day union all select day - 1 from days where day > dateadd(day, -14, getdate()) ) selec
Dates
2012-06-21
2012-06-20
2012-06-19
--
-
另一种方式
;with days(day) as
(
select getdate() - 1 as day
union all
select day - 1
from days
where day > dateadd(day, -14, getdate())
)
select cast(day as date) from days
另一种方式
;with days(day) as
(
select getdate() - 1 as day
union all
select day - 1
from days
where day > dateadd(day, -14, getdate())
)
select cast(day as date) from days
@EkoostikMartin我通过从上一个表中检索来尝试这一点,但是从日志数据顺序中按convert(nvarchar(10),TimeLog,120)DESC选择Distinct convert(nvarchar(10),TimeLog,120)作为日期需要很多时间@EkoostikMartin我通过从上一个表中检索来尝试这一点,但是从日志数据顺序中按convert(nvarchar(10),TimeLog,120)DESC选择Distinct convert(nvarchar(10),TimeLog,120)作为日期需要很多时间;回答很酷,你不能在第一次查询中去掉[object\u id]的
ORDER BY[object\u id]
,而在第二次查询中去掉ORDER BY n
?单独应用行号()
并不一定意味着结果是1-14。大多数时候你可能会注意到这一点,但这并不能保证。该orderby
用于TOP
,而不是结果。最后的ORDER BY
也可能是ORDER BY Dates DESC
——它与CTE中的数字几乎没有关系(例如,将我的第二个ORDER BY
更改为ORDER BY NEWID()
)很有趣,当然这是离题的,但这是因为sys.objects实际上是一个视图吗?如果sys.objects是一个表,[object_id]是一个聚集索引,那么我们就不需要orderby
?@EkoostikMartin,因为你被引入了一个神话。无论是否使用聚集索引,如果没有order by,就没有order。通常这是SQLServer决定返回数据的方式,但不能保证。如果您想要并期望某个订单,您必须添加一个order by。很酷的回答,您不能在第一次查询中取消按[object\u id]排序的订单,而在第二次查询中取消按n
排序的订单吗?仅应用行编号()
并不一定意味着您将得到1-14。大多数时候你可能会注意到这一点,但这并不能保证。该orderby
用于TOP
,而不是结果。最后的ORDER BY
也可能是ORDER BY Dates DESC
——它与CTE中的数字几乎没有关系(例如,将我的第二个ORDER BY
更改为ORDER BY NEWID()
)很有趣,当然这是离题的,但这是因为sys.objects实际上是一个视图吗?如果sys.objects是一个表,[object_id]是一个聚集索引,那么我们就不需要orderby
?@EkoostikMartin,因为你被引入了一个神话。无论是否使用聚集索引,如果没有order by,就没有order。通常这是SQLServer决定返回数据的方式,但不能保证。如果您希望并期望获得某个订单,则必须通过添加订单。小调诡辩,OP要求从昨天开始创建结果集。您应该定义关键字,如day
IMHO。同时比较计划和统计时间。您可能会惊讶于实际涉及对象的查询具有较低的持续时间、较少的读取和准确的估计。。。小心点,亚历克斯。这是一个“计数递归CTE”,即使是在小行计数时,它们也会对资源和性能造成极大的影响。请看下面的文章了解它们到底有多糟糕。小诡辩,OP要求结果集从昨天开始。你应该划出像day
IMHO这样的关键词。同时比较计划和统计时间。您可能会惊讶于实际涉及对象的查询具有较低的持续时间、较少的读取和准确的估计。。。小心点,亚历克斯。这是一个“计数递归CTE”,即使是在小行计数时,它们也会对资源和性能造成极大的影响。请看下面的文章了解它们到底有多糟糕。