开发者社区> 问答> 正文

我需要使用创建的日期获取前5天和6-10天的数据

与标题中一样,我需要获取前5天(6-10天)的数据。我有3个参数:开始日期,结束日期,用户

我有如下创建日期的数据

Createdate
----------------

2019-11-01
2019-11-04
2019-11-05
2019-11-10
2019-11-21
2019-11-30

因此,如您在上面看到的,我们在前5天有3个日期,在6-10天有1个日期。

我用下面的查询

Select count(date) 
from   Data
Where  cast(cdate as date) between cast(cdate as date)  
                               and dateadd(day,5,cdate) Group by cdate

Expected results
-------------
Date         First 5   6-10 
----         -----     ----
2019-11-01     1
2019-11-04     1
2019-11-05     1
2019-11-10     0        1

但是我要获取所有数据,而不是前5天只有3天。请任何人帮忙

展开
收起
祖安文状元 2020-01-03 16:22:43 586 0
1 条回答
写回答
取消 提交回答
  • 使用DATEADD方法尝试以下逻辑-

    Select cdate 
    from   Data
    Where  cdate >= DATEADD(DD,-5,GETDATE())
    
    

    新查询:

    SELECT * FROM data WHERE cdate >=
    (
        SELECT MIN(cdate) 
        FROM (
            select DISTINCT TOP 5  cdate 
            from data 
            order by cdate DESC
        )A 
    )
    
    2020-01-03 16:23:21
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载