1)
CREATE FUNCTION GetYearFristDay(@yourDate varchar(10)) --本年初日期
RETURNS varchar(10)
AS
BEGIN
declare @getDate datetime,@getDateYear int,@returnDate datetime
set @getDate=cast(@yourDate as datetime)
set @getDateYear=year(@getDate) --传入日期年份
set @returnDate=cast(str(@getDateYear)+'-'+'01'+'-01' as datetime) --本年初日期
return convert(varchar(10),@returnDate,120)
END
2)
CREATE FUNCTION GetPreYearSameDay(@yourDate varchar(10)) --上年同期日期 上年同月末天数小于现在天数按最后一天计算
RETURNS varchar(10)
AS
BEGIN
declare @getDate datetime,@getDateYear int,@getDateMonth int,@getDateDay int,@returnDate datetime,@returnDateYear int,@returnDateMonth int,@returnDateDay int
set @getDate=cast(@yourDate as datetime)
set @getDateYear=year(@getDate) --传入日期年份
set @getDateMonth=month(@getDate) --传入日期月份
set @getDateDay=day(@getDate) --传入日期天
set @returnDate=DateAdd(m,1,@getDate) --取得下月日期
set @returnDate=cast(str(year(@returnDate)-1)+'-'+str(month(@returnDate))+'-'+'01' as datetime)-1 --取得去年同月的最后一天日期
set @returnDateYear=year(@returnDate) --去年同月 年份
set @returnDateMonth=month(@returnDate) --去年同月 月份
set @returnDateDay=day(@returnDate) --去年同月最后一天 天
if @getDateDay>@returnDateDay --传入日期天数大于去年同月末天数 返回去年同月最后一天
begin
set @returnDate=@returnDate
end
else
begin
set @returnDate=cast(str(@returnDateYear)+'-'+str(@returnDateMonth)+'-'+str(@getDateDay) as datetime)
end
return convert(varchar(10),@returnDate,120)
END
3)
CREATE FUNCTION GetPreSomeDate(@yourDate varchar(10),@PreDays int) --取 前 几天 日期
RETURNS varchar(10)
AS
BEGIN
declare @getDate datetime,@returnDate datetime
set @getDate=cast(@yourDate as datetime)
set @returnDate=@getDate-@PreDays
return convert(varchar(10),@returnDate,120)
END
4)
CREATE FUNCTION GetPreMonthSameDay(@yourDate varchar(10)) --上月同期日期 上月末天数小于现在天数按最后一天计算
RETURNS varchar(10)
AS
BEGIN
declare @getDate datetime,@getDateYear int,@getDateMonth int,@getDateDay int,@returnDate datetime,@returnDateYear int,@returnDateMonth int,@returnDateDay int
set @getDate=cast(@yourDate as datetime)
set @getDateYear=year(@getDate) --传入日期年份
set @getDateMonth=month(@getDate) --传入日期月份
set @getDateDay=day(@getDate) --传入日期天
set @returnDate=cast(str(@getDateYear)+'-'+str(@getDateMonth)+'-01' as datetime)-1 --上月最后一天
set @returnDateYear=year(@returnDate) --上月最后一天 年份
set @returnDateMonth=month(@returnDate) --上月最后一天 月份
set @returnDateDay=day(@returnDate) --上月最后一天 天
if @getDateDay>@returnDateDay --传入日期天数大于上月末天数 返回上月最后一天
begin
set @returnDate=@returnDate
end
else
begin
set @returnDate=cast(str(@returnDateYear)+'-'+str(@returnDateMonth)+'-'+str(@getDateDay) as datetime)
end
return convert(varchar(10),@returnDate,120)
END
5)
CREATE FUNCTION GetPreMonthLastDay(@yourDate varchar(10)) --上月最后一天日期
RETURNS varchar(10)
AS
BEGIN
declare @getDate datetime,@getDateYear int,@getDateMonth int,@returnDate datetime
set @getDate=cast(@yourDate as datetime)
set @getDateYear=year(@getDate)
set @getDateMonth=month(@getDate)
set @returnDate=cast(str(@getDateYear)+'-'+str(@getDateMonth)+'-01' as datetime)-1
return convert(varchar(10),@returnDate,120)
END
6)
CREATE FUNCTION GetMonthFristDay(@yourDate varchar(10)) --取得本月初日期
RETURNS varchar(10)
AS
BEGIN
declare @getDate datetime,@getDateYear int,@getDateMonth int,@returnDate datetime
set @getDate=cast(@yourDate as datetime)
set @getDateYear=year(@getDate) --传入日期年份
set @getDateMonth=month(@getDate) --传入日期月份
set @returnDate=cast(str(@getDateYear)+'-'+str(@getDateMonth)+'-01' as datetime) --本月初日期
return convert(varchar(10),@returnDate,120)
END