首页 新闻 会员 周边 捐助

sql server2008如何获取连续月份?

0
悬赏园豆:10 [已解决问题] 解决于 2015-05-30 07:58

已知开始年月和结束年月,生成这个时间段的连续月份。比如 :知道了2013-07到2013-10,

那么生成

2013-07,

2013-08,

2013-09,

2013-10。请问sql语句怎么写?

Juniors的主页 Juniors | 初学一级 | 园豆:24
提问于:2015-05-20 14:46
< >
分享
最佳答案
0
收获园豆:5
webaspx | 小虾三级 |园豆:1973 | 2015-05-20 15:54
其他回答(3)
0

select  to_char(sysdate,'yyyy')  from  dual; 获取年份

收获园豆:1
wangYiYi | 园豆:13 (初学一级) | 2015-05-20 15:26

sql server 没有to_char函数……

支持(0) 反对(0) Juniors | 园豆:24 (初学一级) | 2015-05-20 15:28

@眉骨侠: 那就是oracle、数据库里的

支持(0) 反对(0) wangYiYi | 园豆:13 (初学一级) | 2015-05-20 15:30

@wangYiYi: 我想问的是sqlserver2008里的……谢谢。

支持(0) 反对(0) Juniors | 园豆:24 (初学一级) | 2015-05-20 15:33
0

declare @starttime datetime,@endtime datetime
set @starttime = '2013-07-01'
set @endtime ='2013-10-31'
declare @startYear int,@startMonth int ,@endYear int,@endMonth int
--set @startYear=DatePart(yyyy,@starttime)
set @startMonth=DatePart(M,@starttime)
--set @endYear=DatePart(M,@endtime);
set @endMonth=DatePart(M,@endtime)
create table #tmpStudent(alltime varchar(20))
declare @time varchar(20)
while(@startMonth<=@endMonth)
begin
set @time='2013'+'-'+cast(@startMonth as varchar(10))
insert into #tmpStudent values(@time)
set @startMonth=@startMonth+1
end
select * from #tmpStudent
drop table #tmpStudent

收获园豆:3
想要飞 | 园豆:11 (初学一级) | 2015-05-20 15:48

试试这个看看,这个是写死了的,如果想要动态的话,你更改一下就可以了,如果有帮助你就结贴吧!

支持(0) 反对(0) 想要飞 | 园豆:11 (初学一级) | 2015-05-20 15:49

虽然长点,但是你这个确实实现了,非常感谢!

支持(0) 反对(0) Juniors | 园豆:24 (初学一级) | 2015-05-20 15:49

你是有个问题了,加入这个起止日期跨年的话呢?例如2012-12到2013-02?

支持(0) 反对(0) Juniors | 园豆:24 (初学一级) | 2015-05-20 15:51

@眉骨侠: 继续循环,我不是跟你写了么,你动手试试看!

支持(0) 反对(0) 想要飞 | 园豆:11 (初学一级) | 2015-05-20 16:00

@想要飞: 这样更简便:

SELECT
DISTINCT
CONVERT (
VARCHAR (7),
DATEADD(DD, NUMBER, '2014-12-28'),
120
) AS TIME
FROM
MASTER..SPT_VALUES
WHERE
TYPE = 'P'
AND DATEADD(DD, NUMBER, '2014-12-28') <= '2015-01-02';

支持(1) 反对(0) Juniors | 园豆:24 (初学一级) | 2015-05-20 16:18

@眉骨侠:  

看看结果,有些东西要试试的!

支持(0) 反对(0) 想要飞 | 园豆:11 (初学一级) | 2015-05-30 13:18
0

dateadd(day,num,时间) 中num去 联合一张有序的表中序号,就能实现有序排列 

收获园豆:1
隔壁老王来了 | 园豆:99 (初学一级) | 2015-05-20 16:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册