需要用sql实现 根据制定日期范围 如 2009-8-30 ~ 2009-9-5
列举给定日期范围中的日期
得到如下:
2009-8-30
2009-8-31
2009-9-1
2009-9-2
2009-9-3
2009-9-4
2009-9-5
列举给定日期范围中的日期
得到如下:
2009-8-30
2009-8-31
2009-9-1
2009-9-2
2009-9-3
2009-9-4
2009-9-5
解决方案 »
- 急!一个简单的查询语句,怎么写啊,在线等
- 求一设计思想或者数据结构!(做过计数器的朋友应该能搞定!) 分数在另外贴里!
- 这个sql语句似乎很难我们的SQL大拿都没拿下来,请各位高人帮我看看,只能用一句sql生成,谢谢
- 大侠们,急解决!!!怎么把excel表里的数据导入到数据库的某张表里去?
- 求SQLServer 2005/2008导出Excel2007文件的存储过程
- 那里有学习SQL server存储过程的电子书么?
- sql server2005
- 很简单的一个查询问题。
- 数据库导入时候的错误!!在线等候
- 大家来谈谈主表,明细表的关系问题
- mysql拼音和中文的问题
- 高手解决SQL2000服务器死机问题,现象奇怪.
declare @edate datetime
set @sdate = '2009-8-30'
set @edate = '2009-9-5'
select
dateadd(dd,num,@sdate)
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/*
------------------------------------------------------
2009-08-30 00:00:00.000
2009-08-31 00:00:00.000
2009-09-01 00:00:00.000
2009-09-02 00:00:00.000
2009-09-03 00:00:00.000
2009-09-04 00:00:00.000
2009-09-05 00:00:00.000(所影响的行数为 7 行)
*/
--startdate:2009年9月15日 endDate:2009年10月3日 declare @startdate datetime,@enddate datetime
set @startdate='2009-08-30'
set @enddate='2009-09-05'select convert(varchar(10),dateadd(day,number,@startdate),120)
from
master..spt_values
where
datediff(day,dateadd(day,number,@startdate), @enddate)>=0
and number>0
and type='p'/*----------
2009-08-31
2009-09-01
2009-09-02
2009-09-03
2009-09-04
2009-09-05(6 行受影响)/*
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) Jul 9 2008 14:43:34 Copyright (c)
1988-2008 Microsoft Corporation Enterprise Evaluation Edition on Windows NT 5.1 <X86>
(Build 2600: Service Pack 3)
愿和大家共同进步
如有雷同、实属巧合
★★★★★soft_wsx★★★★★
*/
if OBJECT_ID('tb') is not null drop table tb
go
create table tb(id int,DateFrom datetime, DateTo datetime)
insert tb
select
1, '2009-8-30','2009-9-5' select a.id,convert(nvarchar(10),dateadd(day,b.number,datefrom),120) as 日期
from tb a inner join master..spt_values b
on b.number<=DATEDIFF(day,datefrom,dateto) and b.type='p'
/*
id 日期
1 2009-08-30
1 2009-08-31
1 2009-09-01
1 2009-09-02
1 2009-09-03
1 2009-09-04
1 2009-09-05
*/