12/18/2014 09:42:00 a. m.
Share:
Blog Informático sobre Análisis y Desarrollo de Software.
-- -- create function [dbo].[fni_Split] ( @Cadena nvarchar(max), @Delimitador nvarchar(5) ) RETURNS @TblRetorno table ( Id int identity(1,1), Dato nvarchar(max) ) AS BEGIN While (Charindex(@Delimitador,@Cadena)>0) Begin Insert Into @TblRetorno (Dato) Select Dato = ltrim(rtrim(Substring(@Cadena,1,Charindex(@Delimitador,@Cadena)-1))) Set @Cadena = Substring(@Cadena,Charindex(@Delimitador,@Cadena)+1,len(@Cadena)) End Insert Into @TblRetorno (Dato) Select Dato = ltrim(rtrim(@Cadena)) Return END
-- -- Create FUNCTION [dbo].[fnr_ireCalcularIntervaloAnios](@FechaInicio datetime, @FechaFin datetime) returns int as begin declare @anios int if @FechaFin is null set @FechaFin = getdate() set @anios = (((365* year(@FechaFin))-(365*(year(@FechaInicio))))+ (month(@FechaFin)-month(@FechaInicio))*30 +(day(@FechaFin) - day(@FechaInicio)))/365 return @anios end GOPara ejecutar la función podemos usar:
-- -- set dateformat dmy -- para poder trabajar con fechas en formato dia/mes/año -- es valido solo para la ventana de consultas select dbo.[fnr_ireCalcularIntervaloAnios] ('10/12/2004', '17/12/2010') select dbo.[fnr_ireCalcularIntervaloAnios] ('24/04/2004', null)
-- -- SELECT * FROM Paciente WHERE FechaNacimiento = '19820827'
-- -- SELECT * FROM Paciente WHERE convert(varchar(10), FechaNacimiento, 103) = '27/08/1982'Así, la fecha consultada sería reconocida como el 27 de agosto de 1982. En el caso que quiera consultar dentro de un procedimiento almacenado, lo realizaría utilizando, sería de la siguiente manera:
create procedure sp_ObtenerPacientesSegunFechaNacimiento @FechaNacimientoConsulta datetime as SELECT IdPaciente, Nombres, Apellidos FROM Paciente WHERE convert(varchar(10), FechaNacimiento, 103) = convert(varchar(10), @FechaNacimientoConsulta, 103)
0 comentarios: