|    
			
				22/03/2011, 13:26
			
			
			  | 
  |   |  | Colaborador |  |  Fecha de Ingreso: julio-2007 Ubicación: Mexico, D.F. 
						Mensajes: 6.482
					 Antigüedad: 18 años, 3 meses Puntos: 180 |  | 
  |  Respuesta: calcular la edad  
  Ya se habia publicado una funcion que te hace el trabajo, aun asi, la vuelvo a poner.
 CREATE FUNCTION EntreFechasAñoMesDia (
 @CadenaInicio as nvarchar(10),
 @CadenaFin as nvarchar(10))
 RETURNS nvarchar (100)
 AS
 BEGIN
 
 declare @AñoInicio int
 declare @MesInicio int
 declare @DiaInicio int
 declare @AñoFin int
 declare @MesFin int
 declare @DiaFin int
 declare @Años int
 declare @Meses int
 declare @Dias int
 declare @FechaInicio datetime
 declare @FechaFin datetime
 declare @Texto nvarchar(100)
 --Para comprobar las fechas
 if isdate(@CadenaInicio)=0 return('La fecha de Inicio no es correcta')
 if isdate(@CadenaFin)=0 return ('La fecha de Fin no es correcta')
 if datediff(dd, @CadenaInicio, @CadenaFin) = 0 return('La fecha de Inicio es igual que la de Fin')
 --Asigna las cadenas a las fechas, inviertiéndolas si es necesario y cambiando el mensaje de salida.-
 if datediff(dd, @CadenaInicio, @CadenaFin) > 0
 begin
 set @FechaInicio = @CadenaInicio
 set @FechaFin = @CadenaFin
 set @Texto = 'Pasa'
 end
 else
 begin
 set @FechaInicio = @CadenaFin
 set @FechaFin = @CadenaInicio
 set @Texto = 'Falta'
 end
 --Asigna los valores individuales de día, mes y año, para hacer los cálculos.-
 set @DiaInicio = day(@FechaInicio)
 set @MesInicio = month(@FechaInicio)
 set @AñoInicio = year(@FechaInicio)
 
 set @DiaFin = day(@FechaFin)
 set @MesFin = month(@FechaFin)
 set @AñoFin = year(@FechaFin)
 
 
 --Comprueba si el día es menor o igual al de fin.-
 if @DiaFin - @DiaInicio >= 0
 begin
 set @Dias = @DiaFin - @DiaInicio
 end
 --Si no, calcula la suma en días, desde el día de Inicio a fin de mes, mas los días de Fin, y le resta uno al mes de Fin.-
 else
 begin
 set @Dias = (day(dateadd(mm,1,cast(('01/' + str(@MesInicio) + '/' + str(@AñoInicio)) as datetime)) - 1 )- @DiaInicio) + @DiaFin
 set @MesFin = @MesFin - 1
 end
 --Lo mismo con el mes.-
 if @MesFin - @MesInicio >= 0
 begin
 set @Meses = @MesFin - @MesInicio
 end
 else
 begin
 set @Meses = (@MesFin - @MesInicio) + 12
 set @AñoFin = @AñoFin - 1
 end
 
 set @Años = @AñoFin - @AñoInicio
 --A partir de qaquí ya tenemos los vlores del año, mes y día, lo siguiente es para presentarlo correctamente.-
 declare @CadDia as varchar(20)
 declare @CadMes as varchar(20)
 declare @CadAño as varchar(20)
 
 if @Dias = 0 set @CadDia = ''
 if @Dias = 1 set @CadDia = ltrim(str(@Dias)) + ' día '
 if @Dias > 1 set @CadDia = ltrim(str(@Dias)) + ' días '
 
 if @Meses = 0 set @CadMes = ''
 if @Meses = 1 set @CadMes = ltrim(str(@Meses)) + ' mes'
 if @Meses > 1 set @CadMes = ltrim(str(@Meses)) + ' meses'
 
 
 if @Años = 0
 begin
 set @CadAño = ''
 if @Meses > 1 set @Texto = @Texto + 'n'
 if @Meses = 0 and @Dias >1 set @Texto = @Texto + 'n'
 end
 if @Años = 1 set @CadAño = ltrim(str(@Años)) + ' año'
 if @Años > 1
 begin
 set @CadAño = ltrim(str(@Años)) + ' años'
 set @Texto = @Texto + 'n'
 end
 
 if @Meses <> 0
 begin
 if @Dias <> 0
 begin
 set @CadMes = @CadMes + ' y '
 if @Años <> 0 set @CadAño = @CadAño + ', '
 end
 else
 if @Años <> 0 set @CadAño = @CadAño + ' y '
 end
 else
 if @Años <> 0 and @Dias <> 0 set @CadMes = @CadMes + ' y '
 --end
 Set @Texto = @Texto + ' ' + @CadAño + @CadMes + @CadDia
 RETURN @Texto
 END
 
				__________________MCTS Isaias Islas
     |