给定某个的日期,获取下于等于该日期的月

DECLARE @TIME DATETIME
SET @TIME='2009-05-01'
select convert(nvarchar(6),dateadd(month,number,cast(ltrim(ltrim(year(@TIME))+'-01'+'-01') as datetime)),112) '时间'
from master..spt_values where type='P' and
dateadd(month,number,cast(ltrim(ltrim(year(@TIME))+'-01'+'-01') as datetime))<=@TIME
时间
------
200901
200902
200903
200904
200905


DECLARE @TIME DATETIME
SET @TIME='2009-01-01'
select convert(nvarchar(6),dateadd(month,number,cast(ltrim(ltrim(year(@TIME))+'-01'+'-01') as datetime)),112) '时间'
from master..spt_values where type='P' and
dateadd(month,number,cast(ltrim(ltrim(year(@TIME))+'-01'+'-01') as datetime))<=@TIME

时间
------
200901



DECLARE @TIME DATETIME
SET @TIME='2009-10-01'
select convert(nvarchar(6),dateadd(month,number,cast(ltrim(ltrim(year(@TIME))+'-01'+'-01') as datetime)),112) '时间'
from master..spt_values where type='P' and
dateadd(month,number,cast(ltrim(ltrim(year(@TIME))+'-01'+'-01') as datetime))<=@TIME


时间
------
200901
200902
200903
200904
200905
200906
200907
200908
200909
200910

(
10 行受影响)

你可能感兴趣的:(日期)