El código de la función es:
Código:
Ahora bien, cuando llamo la función asi: CREATE FUNCTION fn_FormatFecha (@Fecha datetime) RETURNS varchar AS BEGIN DECLARE @Result varchar(23) Select @Result = SubString(Convert(varchar(10),@Fecha,120),9,2) + '-' + Case SubString(Convert(varchar(7),@Fecha,120),6,2) When '01' Then 'Ene' When '02' Then 'Feb' When '03' Then 'Mar' When '04' Then 'Abr' When '05' Then 'May' When '06' Then 'Jun' When '07' Then 'Jul' When '08' Then 'Ago' When '09' Then 'Sep' When '10' Then 'Oct' When '11' Then 'Nov' When '12' Then 'Dic' end + '-' + Convert(varchar(4),@Fecha,120) + ' ' + case SubString(Convert(varchar(20),@Fecha,120),12,2) when '00' then '12' when '13' then '01' when '14' then '02' when '15' then '03' when '16' then '04' when '17' then '05' when '18' then '06' when '19' then '07' when '20' then '08' when '21' then '09' when '22' then '10' when '23' then '11' when '24' then '12' else SubString(Convert(varchar(20),@Fecha,120),12,2) end + ':' + SubString(Convert(varchar(20),@Fecha,120),15,6) + ' ' + case SubString(Convert(varchar(20),@Fecha,120),12,2) when '00' then 'AM' when '13' then 'PM' when '14' then 'PM' when '15' then 'PM' when '16' then 'PM' when '17' then 'PM' when '18' then 'PM' when '19' then 'PM' when '20' then 'PM' when '21' then 'PM' when '22' then 'PM' when '23' then 'PM' when '24' then 'PM' else 'AM' end RETURN @Result END
Código:
, el resultado es cero. Select dbo.fn_FormatFecha(GetDate())
Sin embargo, cuando pruebo mi código me trae el resultado correcto. Para probar, utilizo el siguiente código:
Código:
DECLARE @Result varchar(23) DECLARE @Fecha datetime Select @Fecha = getDate() Select @Result = SubString(Convert(varchar(10),@Fecha,120),9,2) + '-' + Case SubString(Convert(varchar(7),@Fecha,120),6,2) When '01' Then 'Ene' When '02' Then 'Feb' When '03' Then 'Mar' When '04' Then 'Abr' When '05' Then 'May' When '06' Then 'Jun' When '07' Then 'Jul' When '08' Then 'Ago' When '09' Then 'Sep' When '10' Then 'Oct' When '11' Then 'Nov' When '12' Then 'Dic' end + '-' + Convert(varchar(4),@Fecha,120) + ' ' + case SubString(Convert(varchar(20),@Fecha,120),12,2) when '00' then '12' when '13' then '01' when '14' then '02' when '15' then '03' when '16' then '04' when '17' then '05' when '18' then '06' when '19' then '07' when '20' then '08' when '21' then '09' when '22' then '10' when '23' then '11' when '24' then '12' else SubString(Convert(varchar(20),@Fecha,120),12,2) end + ':' + SubString(Convert(varchar(20),@Fecha,120),15,6) + ' ' + case SubString(Convert(varchar(20),@Fecha,120),12,2) when '00' then 'AM' when '13' then 'PM' when '14' then 'PM' when '15' then 'PM' when '16' then 'PM' when '17' then 'PM' when '18' then 'PM' when '19' then 'PM' when '20' then 'PM' when '21' then 'PM' when '22' then 'PM' when '23' then 'PM' when '24' then 'PM' else 'AM' end Select @Result