sql语句,怎么将一段日期分割成每日?请高人解答。

有表:T1字段起始日期结束日期类型2014-2-12014-2-3假日2014-2-42014-2-7工作2014-2-82014-2-9假日想要的结果是:2014-2-... 有表:T1
字段 起始日期 结束日期 类型
2014-2-1 2014-2-3 假日
2014-2-4 2014-2-7 工作
2014-2-8 2014-2-9 假日

想要的结果是:
2014-2-1 假日
2014-2-2 假日
2014-2-8 假日
2014-2-9 假日
请高人帮忙
结果应该是:
2014-2-1 假日
2014-2-2 假日
2014-2-3 假日
2014-2-8 假日
2014-2-9 假日
展开
 我来答
HaiziCattle
2014-02-17 · TA获得超过125个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:193万
展开全部
设置一个临时表,仅设一日期字段,里面插入所有的查询范围内的日期记录 设定为 t_date
select t2.日期,t1.类型
from T1 ,t_date t2
where t1. 起始日期<= t1.日期 and t2.日期<=t1.结束日期
追问
请问高人如何写呢,我不太会。
匿名用户
推荐于2020-12-17
展开全部
想要的结果应该是:
2014-2-1 假日
2014-2-2 假日
2014-2-3 假日
2014-2-8 假日
2014-2-9 假日
吧?
不然不符合逻辑啊。

可以先取出类型='假日'的到一张临时表#T1,然后用游标一条一条记录的取,里面用日期循环,应该可以得到想要的结果。试试吧
追问
是的,少些了一个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenda8852
2014-02-17 · TA获得超过309个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:184万
展开全部
--获取两个时间之内的所有日期
declare @sdate datetime
declare @edate datetime
set @sdate = '2012-01-01'
set @edate = '2012-12-31'

select * from
(
select dateadd(dd,num,@sdate) as nyr
from (select isnull((select count(1) from sysobjects where id<t.id),0) as num from sysobjects t) a
where dateadd(dd,num,@sdate)<=@edate
) a order by nyr asc
更多追问追答
追问
请问我的这个题目应该怎么用写?
追答
你的假日指周六和周末吗?工作是周一到到周五吧?  加个判断就可以了。 需要帮忙写代码吗?

以下是最终的代码:

--获取两个时间之内的所有日期
declare @sdate datetime
declare @edate datetime
set @sdate = '2014-02-01'
set @edate = '2014-02-28'

select * from
(
select CONVERT(varchar(100),dateadd(dd,num,@sdate), 23) as nyr,work=case DATEPART(dw,dateadd(dd,num,@sdate)) when 1 then '假日' when 7 then '假日' else '工作' end
from (select isnull((select count(1) from sysobjects where id<t.id),0) as num from sysobjects t) a
where dateadd(dd,num,@sdate)<=@edate
) a order by nyr asc
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
garfield0
2014-02-17 · TA获得超过208个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:105万
展开全部
基本的SQL语句实现不了,要写存储过程。你在什么工具里编辑?能执行存储过程吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式