[dbo].[Func_DateFormat]

USE [DB]
GO
/****** Object:  UserDefinedFunction [dbo].[Func_DateFormat]    Script Date: 03/31/2014 18:08:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[Func_DateFormat]
(@Date datetime, @Format varchar(50))
returns varchar(11)
as
begin
	declare @Month varchar(3)
	declare @MonthInt int
	declare @Day int
	declare @Year int
	set @MonthInt=datepart(mm,@Date)
	set @Day=datepart(dd,@Date)
	set @Year=datepart(yy,@Date)

	set @Month=
	case @MonthInt
	when 1 then 'Jan'
	when 2 then 'Feb'
	when 3 then 'Mar'
	when 4 then 'Apr'
	when 5 then 'May'
	when 6 then 'Jun'
	when 7 then 'Jul'
	when 8 then 'Aug'
	when 9 then 'Sep'
	when 10 then 'Oct'
	when 11 then 'Nov'
	when 12 then 'Dec'
	end
	
		
	if(Upper(@Format)='MMM YYYY')
	begin
		return @Month+' '+ltrim(@Year)
	end
	
	if(Upper(@Format)='DD/MMM/YYYY')
	begin
		return right(('0'+ltrim(@Day)),2)+'/'+@Month+'/'+ltrim(@Year)
	end
	
	if(Upper(@Format)='DD MMM YYYY')
	begin
		return right(('0'+ltrim(@Day)),2)+' '+@Month+' '+ltrim(@Year)
	end
	
		
	if(Upper(@Format)='MMM/YYYY')
	begin
		return @Month+'/'+ltrim(@Year)
	end
	
	return convert(varchar(20), @Date, 25)
end

  

原文地址:https://www.cnblogs.com/Jenny90/p/3636463.html