sql-server-2012 - 在东西查询中以逗号分隔获取所有开始日期和结束日期
问题描述
嗨,我的开始日期为 GetDate()-5,结束日期为 GetDate()
我在变量中传递这个日期,即这个日期没有存储在任何表中,所以我怎样才能得到记录
GetDate()-5,GetDate()-4,GetDate()-3,GetDate()-2,GetDate()-1,GetDate()
在 sql 服务器中
我试过下面的查询是完全错误的,有人可以建议我吗
declare @startdate date
declare @enddate date
set @startdate =GETDATE()-5
set @enddate =GETDATE()
STUFF((SELECT DISTINCT ','+CONVERT(VARCHAR, CONVERT(DATE,GETDATE()-5))
FROM [Table]--What should be here?
WHERE CONVERT(date,AETE.TimeEntryDate) between CONVERT(DATE,@startdate)
AND CONVERT(DATE, @enddate)
FOR XML PATH('')), 1,1,'')
解决方案
CTE 在这里可能会派上用场:
declare @startdate date = dateadd(D, -5, getdate())
declare @enddate date = getdate();
with cte(d) as (
select @startdate
union all
select dateadd(D, 1, d)
from cte
where d < @enddate
)
select stuff((
select ', ' + convert(nvarchar(255), d, 101)
from cte
for xml path('')), 1, 2, '')
给你:
08/09/2018, 08/10/2018, 08/11/2018, 08/12/2018, 08/13/2018, 08/14/2018
请注意,这会给您 6 天——比今天少 5 天,以及今天的日期。
推荐阅读
- c# - 是否可以在案例中更改开关变量?
- reactjs - 在 reactjs 如何将页面标题更改为与页面路由链接名称相同?
- c++ - 尝试将 Ruby 自定义数组访问器转换为 C++ 下标运算符覆盖
- dart - Flutter 中的 ListView 中长按和滑动
- dart - 如何修复解决依赖关系...使用颤振运行时出错?
- python - 这个东西返回什么:frame[:, :, ::-1]
- java - Android - 尽管有内联权限和清单权限,但从存储“权限被拒绝”中读取文件
- mysql - 如何过滤掉具有匹配值的属性?
- python - 我可以在 TensorFlow 自定义层中添加 if...else 吗?
- c - memmove 是否为其临时数组使用动态内存