-- Retorna data como string
RETURNS nvarchar(25)ASBEGIN DECLARE @Datafmt nvarchar(25)
-- Verifica se a data é válida
IF @data Is Null SET @Datafmt = '' -- dia-mes-ano
ELSE IF @formato = 2
BEGIN set @Datafmt=convert(nvarchar(10),@data,105)
END -- somente dia
ELSE IF @formato = 3
BEGIN set @Datafmt=convert(nvarchar(2),@data,105)
END -- somente mês
ELSE IF @formato = 4
BEGIN set @Datafmt=convert(nvarchar(2),@data,101)
END -- somente Ano
ELSE IF @formato = 5 BEGIN set @Datafmt=convert(nvarchar(4),@data,112) END
-- mes/dia/ano
ELSE IF @formato = 6 BEGIN set @Datafmt=convert(nvarchar(10),@data,101) END -- mes-dia-ano ELSE
IF @formato = 7 BEGIN set @Datafmt=convert(nvarchar(10),@data,110) END -- Formato Longo ELSE IF
@formato = 8 BEGIN SET @Datafmt =Convert(varchar(2), @data,105) SET @Datafmt = @Datafmt + ' de '
-- concatena o mês SET @Datafmt = @Datafmt + CASE Month(@data) WHEN 1 THEN 'Janeiro' WHEN 2
THEN 'Fevereiro' WHEN 3 THEN 'Março' WHEN 4 THEN 'Abril' WHEN 5 THEN 'Maio' WHEN 6 THEN
'Junho' WHEN 7 THEN 'Julho' WHEN 8 THEN 'Agosto' WHEN 9 THEN 'Setembro' WHEN 10 THEN
'Outubro' WHEN 11 THEN 'Novembro' ELSE 'Dezembro' END SET @Datafmt = @Datafmt + ' de ' --
concatena o ano SET @Datafmt = @Datafmt + convert(nvarchar(4), @data, 112) END -- Formato Curto
ELSE IF @formato = 9 BEGIN set @Datafmt=convert(nvarchar(11),@data,106) END -- mês/ano ELSE IF
@formato = 10 BEGIN set @Datafmt=convert(nvarchar(11),@data,106) set
@Datafmt=substring(@Datafmt,4,3)+'/'+substring(@Datafmt,8,4) END -- mm/yyyy ELSE IF @formato =
11 BEGIN set @Datafmt=convert(nvarchar(10),@data,103) set @Datafmt=substring(@Datafmt,4,7) END
-- dd/mm/yyyy hh:mm (24h) ELSE IF @formato = 12 BEGIN set
@Datafmt=convert(nvarchar(10),@data,103) + ' ' + convert(nvarchar(5),@data,108) END
-- dd/mm/yyyy (Default) = 1
ELSE
BEGIN set @Datafmt=convert(nvarchar(10),@data,103)
END
RETURN(@Datafmt)END