查考:
取得今天所在月的开始和结束(例如今天是11月2号)select dateadd(day,28,dateadd(day,-datepart(day,getdate()),dateadd(month ,-1,getdate())))
select dateadd(day,27,dateadd(day,-datepart(day,getdate()),getdate()))结果:
2005-10-28
2005-11-27
取得今天所在月的开始和结束(例如今天是11月2号)select dateadd(day,28,dateadd(day,-datepart(day,getdate()),dateadd(month ,-1,getdate())))
select dateadd(day,27,dateadd(day,-datepart(day,getdate()),getdate()))结果:
2005-10-28
2005-11-27
declare @dt datetime
select @dt=getdate()
select convert(char(7),dateadd(month,-11,@dt),120)+'-28',convert(char(7),@dt,120)+'-27'
returns @re table(dts datetime,dte datetime)
as
begin
insert into @re
select convert(char(7),dateadd(month,-11,@dt),120)+'-28',convert(char(7),@dt,120)+'-27'
return
enddeclare @date datetime
select @date=getdate()
select * from dbo.fnt_getdtRange(@date)
我的目的求年月。由于我厂的数据统计是按上月28号到本月的27号作为一个月的。
现在我只会用CONVERT(char(7), 日期, 111)求出正常所属月份。
现要求如下:
日期 年月
2005/8/10 2005/8
2005/8/20 2005/8
2005/8/28 2005/9
2005/9/10 2005/9
2005/9/27 2005/9
2005/10/28 2005/11
请再赐教!!谢谢
--调用: select dbo.f_date('2005/8/28')
create function f_date(@dt datetime)
returns varchar(10)
as
begin
if day(@dt) between 1 and 27
return CONVERT(char(7),@dt,111) return CONVERT(char(7),dateadd(month,1,@dt),111)
end
go
else CONVERT(char(7), dateadd(month,1,日期), 111)
end
from 表