在论坛中出现的比较难的sql问题:33(递归 连续日期问题 )
2016-01-13 14:07
519 查看
最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
MS-SQL取连续日期问题
http://bbs.csdn.net/topics/390635235?page=1#post-395995697
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/07/07851a48e3d57759851a2f7bb9270973)
我现在需要得出表A中所有FBeginDate和FEndDate字段间的日期
下面是我的解法,使用了递归查询:
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
MS-SQL取连续日期问题
http://bbs.csdn.net/topics/390635235?page=1#post-395995697
我现在需要得出表A中所有FBeginDate和FEndDate字段间的日期
下面是我的解法,使用了递归查询:
drop table tb create table tb(FBeginDate datetime,FEndDate datetime) insert into tb select '2010-10-01','2010-10-01' union all select '2010-10-01','2010-10-07' union all select '2011-01-30','2011-02-12' ;with t as ( select 1 as number union all select number + 1 from t where t.number < 100 ) select tb.FBeginDate, tb.FEndDate, dateadd(day,t.number-1,FBeginDate) as '两个日期之间的天' from tb inner join t on datediff(day,FBeginDate,FEndDate) +1 >= t.number order by tb.FBeginDate, '两个日期之间的天' /* FBeginDate FEndDate 两个日期之间的天 2010-10-01 00:00:00.000 2010-10-01 00:00:00.000 2010-10-01 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-01 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-02 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-03 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-04 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-05 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-06 00:00:00.000 2010-10-01 00:00:00.000 2010-10-07 00:00:00.000 2010-10-07 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-01-30 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-01-31 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-01 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-02 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-03 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-04 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-05 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-06 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-07 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-08 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-09 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-10 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-11 00:00:00.000 2011-01-30 00:00:00.000 2011-02-12 00:00:00.000 2011-02-12 00:00:00.000 */
相关文章推荐
- 使用YCSB测试Mongodb性能的方法简介
- 安装SqlServer的时候性能计数器注册表配置单元一致性失败的解决办法
- MySQL 去除字段中的换行和回车符
- 使用代理软件mysql-proxy实现mysql的读写分离
- oracle调用JAVA类的方法
- oracle 和 MySQL 的区别
- Redis学习记录之命令List(十一)
- (转)Oracle一列的多行数据拼成一行显示字符
- entity framework 连接Mysql
- Oracle中,用一条Sql实现任意的行转列拼接(不是decode)
- MySQL5.7.10zip包解压配置
- 关于oracle中的wmsys.wm_concat中的使用问题
- 数据库置疑(可疑状态)的修复方法
- oracle数据类型和对应的java类型
- mysql的replace into类似于oracle的merge sql语句
- 通过Navicat for MySQL恢复数据 mysql [Err] 2006 - MySQL server has gone away [Err] INSERT INTO错误
- sql大全
- 【转】Oracle数据库中commit和rollback命令
- mysqld_multi stop 不能停掉mysql
- WheelView实现省市区三级联动(数据库实现版本附带完整SQL及数据)