原文:在论坛中出现的比较难的sql问题:33(递归 连续日期问题 )


最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。

所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。

MS-SQL取连续日期问题  
http://bbs.csdn.net/topics/390635235?page=1#post-395995697

我现在需要得出表A中所有FBeginDate和FEndDate字段间的日期

下面是我的解法,使用了递归查询:


  1. drop table tb
  2. create table tb(FBeginDate datetime,FEndDate datetime)
  3. insert into tb
  4. select '2010-10-01','2010-10-01'
  5. union all select '2010-10-01','2010-10-07'
  6. union all select '2011-01-30','2011-02-12'
  7. ;with t
  8. as
  9. (
  10. select 1 as number
  11. union all
  12. select number + 1
  13. from t
  14. where t.number < 100
  15. )
  16. select tb.FBeginDate,
  17. tb.FEndDate,
  18. dateadd(day,t.number-1,FBeginDate) as '两个日期之间的天'
  19. from tb
  20. inner join t
  21. on datediff(day,FBeginDate,FEndDate) +1 >= t.number
  22. order by tb.FBeginDate,
  23. '两个日期之间的天'
  24. /*
  25. FBeginDate FEndDate 两个日期之间的天
  26. 2010-10-01 00:00:00.000 2010-10-01 00:00:00.000 2010-10-01 00:00:00.000
  27. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-01 00:00:00.000
  28. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-02 00:00:00.000
  29. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-03 00:00:00.000
  30. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-04 00:00:00.000
  31. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-05 00:00:00.000
  32. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-06 00:00:00.000
  33. 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-07 00:00:00.000
  34. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-01-30 00:00:00.000
  35. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-01-31 00:00:00.000
  36. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-01 00:00:00.000
  37. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-02 00:00:00.000
  38. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-03 00:00:00.000
  39. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-04 00:00:00.000
  40. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-05 00:00:00.000
  41. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-06 00:00:00.000
  42. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-07 00:00:00.000
  43. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-08 00:00:00.000
  44. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-09 00:00:00.000
  45. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-10 00:00:00.000
  46. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-11 00:00:00.000
  47. 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-12 00:00:00.000
  48. */
发布了416 篇原创文章 · 获赞 135 · 访问量 94万+

在论坛中出现的比较难的sql问题:33(递归 连续日期问题 )的更多相关文章

  1. 在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题)

    原文:在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...

  2. 在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时、分钟计算问题)

    原文:在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时.分钟计算问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. ...

  3. 在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)

    原文:在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决 ...

  4. 在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列)

    原文:在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  5. 在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字)

    原文:在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  6. 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)

    原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...

  7. 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)

    原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ...

  8. 在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题)

    原文:在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得 ...

  9. 在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名)

    原文:在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  10. 在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串)

    原文:在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

随机推荐

  1. 【idea】断点调试时查看所有变量和静态变量

    转载至博客:https://blog.csdn.net/qq32933432/article/details/86672341 缘起 笔者在进行HashMap原理探索的时候需要在IntelliJ ID ...

  2. Spark获取DataFrame中列的几种姿势--col,$,column,apply

    1.doc上的解释(https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Column.html)  df("c ...

  3. 0.9.0.RELEASE版本的spring cloud alibaba nacos+gateway网关实例

    gateway就是用来替换zuul的,功能都差不多,我们看下它怎么来跟nacos一起玩.老套路,三板斧: 1.pom: <?xml version="1.0" encodin ...

  4. 泡泡一分钟:Topomap: Topological Mapping and Navigation Based on Visual SLAM Maps

    Topomap: Topological Mapping and Navigation Based on Visual SLAM Maps Fabian Bl¨ochliger, Marius Feh ...

  5. php 微信公众平台OAuth2.0网页授权,获取用户信息代码类封装demo

    get_wx_data.php <?php /** * 获取微信用户信息 * @author: Lucky hypo */ class GetWxData{ private $appid = ' ...

  6. python中异常处理之esle,except,else

    异常是指程序中的例外,违例情况.异常机制是指程序出现错误后,程序的处理方法.当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理. python中使用try...except语句捕获异常, ...

  7. PP篇9 更改计划订单

    首先看了下这个函数的版本  还挺新的 S4版本应该是有更新过,里面用了新语法 导入: PLANNEDORDER    计划订单号HEADERDATA          表头数据(来自外部系统) HEA ...

  8. 斐波那契数列&&上台阶

    使用装饰器的场景 当我们想对多个函数增加一个相同的功能时,例如计数统计,缓存计算结果,记录日志等 # coding:utf-8 # [题目1] # 斐波那契数列 又称黄金分割数列,指的是这样的一个数列 ...

  9. npm i node-sass 报错&npm 镜像切换

    npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao ...

  10. hdoj4099(字典树+高精度)

    题目链接:https://vjudge.net/problem/HDU-4099 题意:给T组询问,每个询问为一个字符串(长度<=40),求以该字符串为开始的fibonacci数列的第一个元素的 ...