34,590
社区成员
发帖
与我相关
我的任务
分享
declare @a datetime
set @a=getdate()
select [date]=dateadd(dd,-number,@a) from master..spt_values where type='p'
and number between 0 and datediff(dd,@a,dateadd(mm,1,@a))
order by [date] desc
declare @a datetime
set @a=getdate()
select [date]=dateadd(dd,number,@a) from master..spt_values where type='p'
and number between 0 and datediff(dd,@a,dateadd(mm,-1,@a))
order by [date] desc
/*
date
-----------------------
2012-08-04 15:05:56.750
2012-08-03 15:05:56.750
2012-08-02 15:05:56.750
2012-08-01 15:05:56.750
2012-07-31 15:05:56.750
2012-07-30 15:05:56.750
2012-07-29 15:05:56.750
2012-07-28 15:05:56.750
2012-07-27 15:05:56.750
2012-07-26 15:05:56.750
2012-07-25 15:05:56.750
2012-07-24 15:05:56.750
2012-07-23 15:05:56.750
2012-07-22 15:05:56.750
2012-07-21 15:05:56.750
2012-07-20 15:05:56.750
2012-07-19 15:05:56.750
2012-07-18 15:05:56.750
2012-07-17 15:05:56.750
2012-07-16 15:05:56.750
2012-07-15 15:05:56.750
2012-07-15 15:05:56.750
2012-07-13 15:05:56.750
2012-07-12 15:05:56.750
2012-07-11 15:05:56.750
2012-07-10 15:05:56.750
2012-07-09 15:05:56.750
2012-07-07 15:05:56.750
2012-07-07 15:05:56.750
2012-07-06 15:05:56.750
2012-07-05 15:05:56.750
2012-07-04 15:05:56.750
(32 行受影响)
*/
declare @tb table(n varchar(10))
declare @t datetime
select @t=getdate()
while (dateadd(month,-1,getdate())<=@t)
begin
insert into @tb select convert(varchar(10),@t,120)
set @t=dateadd(day,-1,@t)
end
select * from @tb
DECLARE @sql VARCHAR(MAX)
DECLARE @i INT
SET @i=30
WHILE @i>0
BEGIN
IF @i=1
SET @sql=ISNULL(@sql,'')+' SELECT DATEADD(DAY,0-CONVERT(INT,'+CONVERT(VARCHAR(2),@i)+'),GETDATE())'
ELSE
SET @sql=ISNULL(@sql,'')+' SELECT DATEADD(DAY,0-CONVERT(INT,'+CONVERT(VARCHAR(2),@i)+'),GETDATE()) UNION ALL '
SET @i=@i-1
END
EXEC(@sql)
declare @a datetime
set @a=getdate()
select [date]=dateadd(dd,number,@a) from master..spt_values where type='p'
and number between 0 and datediff(dd,@a,dateadd(mm,1,@a))
order by [date] desc
/*
date
-----------------------
2012-09-04 14:48:59.960
2012-09-03 14:48:59.960
2012-09-02 14:48:59.960
2012-09-01 14:48:59.960
2012-08-31 14:48:59.960
2012-08-30 14:48:59.960
2012-08-29 14:48:59.960
2012-08-28 14:48:59.960
2012-08-27 14:48:59.960
2012-08-26 14:48:59.960
2012-08-25 14:48:59.960
2012-08-24 14:48:59.960
2012-08-23 14:48:59.960
2012-08-22 14:48:59.960
2012-08-21 14:48:59.960
2012-08-20 14:48:59.960
2012-08-19 14:48:59.960
2012-08-18 14:48:59.960
2012-08-17 14:48:59.960
2012-08-16 14:48:59.960
2012-08-15 14:48:59.960
2012-08-14 14:48:59.960
2012-08-13 14:48:59.960
2012-08-12 14:48:59.960
2012-08-11 14:48:59.960
2012-08-10 14:48:59.960
2012-08-09 14:48:59.960
2012-08-08 14:48:59.960
2012-08-07 14:48:59.960
2012-08-06 14:48:59.960
2012-08-05 14:48:59.960
2012-08-04 14:48:59.960
(32 行受影响)
*/
create function ShowDay()
returns @DataTable table(dDateTime datetime)
as
begin
declare @num int
select @num = 0
while dateadd(month,-1,getdate()) <= dateadd(day,@num,getdate())
begin
insert into @DataTable(dDateTime)
select dateadd(day,@num,getdate())
select @num = @num - 1
end
return
end
go
select * from dbo.ShowDay()
/*--结果
2012-07-24 14:45:42.837
2012-07-23 14:45:42.837
2012-07-22 14:45:42.837
2012-07-21 14:45:42.837
2012-07-20 14:45:42.837
2012-07-19 14:45:42.837
2012-07-18 14:45:42.837
2012-07-17 14:45:42.837
2012-07-16 14:45:42.837
2012-07-15 14:45:42.837
2012-07-14 14:45:42.837
2012-07-13 14:45:42.837
2012-07-12 14:45:42.837
2012-07-11 14:45:42.837
2012-07-10 14:45:42.837
2012-07-09 14:45:42.837
2012-07-08 14:45:42.837
2012-07-07 14:45:42.837
2012-07-06 14:45:42.837
2012-07-05 14:45:42.837
2012-07-04 14:45:42.837
*/
create function ShowDay()
returns @DataTable table(dDateTime datetime)
as
begin
declare @num int
select @num = 0
while dateadd(month,-1,getdate()) <= dateadd(day,@num,getdate())
begin
insert into @DataTable(dDateTime)
select dateadd(day,@num,getdate())
select @num = @num - 1
end
return
end
go
select * from dbo.ShowDay()
/*--结果
2012-07-24 14:45:42.837
2012-07-23 14:45:42.837
2012-07-22 14:45:42.837
2012-07-21 14:45:42.837
2012-07-20 14:45:42.837
2012-07-19 14:45:42.837
2012-07-18 14:45:42.837
2012-07-17 14:45:42.837
2012-07-16 14:45:42.837
2012-07-15 14:45:42.837
2012-07-14 14:45:42.837
2012-07-13 14:45:42.837
2012-07-12 14:45:42.837
2012-07-11 14:45:42.837
2012-07-10 14:45:42.837
2012-07-09 14:45:42.837
2012-07-08 14:45:42.837
2012-07-07 14:45:42.837
2012-07-06 14:45:42.837
2012-07-05 14:45:42.837
2012-07-04 14:45:42.837
*/