• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

如何列出日期

tedder 2007-03-16 09:38:56
怎样列出指定日期到当天的每一天?
...全文
145 点赞 收藏 6
写回复
6 条回复
dnvodc 2007年03月16日
declare @SDate datetime
declare @i int
select @sDate='2007-01-16'
select @i=1
While @i<Datediff(d,@Sdate,getdate())
Begin

print Dateadd(d,@i,@sdate)
select @i=@i+1
end
回复 点赞
hrb2008 2007年03月16日
create table #
(
col datetime
)
declare @d datetime,@day int
set @d='2007-03-01'
select @day=datediff(day,@d,getdate())
while @day>=0
begin
insert into # select dateadd(day,@day,@d)
set @day=@day-1
end
select * from #
drop table #
--
col
-----------------------
2007-03-16 00:00:00.000
2007-03-15 00:00:00.000
2007-03-14 00:00:00.000
2007-03-13 00:00:00.000
2007-03-12 00:00:00.000
2007-03-11 00:00:00.000
2007-03-10 00:00:00.000
2007-03-09 00:00:00.000
2007-03-08 00:00:00.000
2007-03-07 00:00:00.000
2007-03-06 00:00:00.000
2007-03-05 00:00:00.000
2007-03-04 00:00:00.000
2007-03-03 00:00:00.000
2007-03-02 00:00:00.000
2007-03-01 00:00:00.000

(16 行受影响)
回复 点赞
wangdehao 2007年03月16日
如果你经常这么搞的话就建一个id表得了

查询的时候直接

declare @dt datetime
set @dt='2007-1-1'
select dateadd(day,id,@dt) from id表 where dateadd(day,id,@dt)<getdate()
回复 点赞
paoluo 2007年03月16日
如果時間跨度更大的話,可以適當修改

Select Top 1000 Identity(Int, 0, 1) As ID Into #T from Sysobjects A, Sysobjects B

將其改為

Select Top 5000 Identity(Int, 0, 1) As ID Into #T from Sysobjects A, Sysobjects B

,或者更大.
回复 点赞
wangdehao 2007年03月16日
弄一个id表
从1-10000

declare @dt datetime
set @dt='2007-1-1'

select top 10000 id=identity(int,0,1) into #t from sysobjects a,sysobjects b

select dateadd(day,id,@dt) from #t where dateadd(day,id,@dt)<getdate()
回复 点赞
paoluo 2007年03月16日
Declare @Dt DateTime
Select @Dt = '2007-01-01'
Select Top 1000 Identity(Int, 0, 1) As ID Into #T from Sysobjects A, Sysobjects B
Select DateAdd(dd, ID, @Dt) As Dt From #T Where ID <= DateDiff(dd, @Dt, GetDate())
Drop Table #T

回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告