none
Concer los mese que se encuentra entre dos fechas RRS feed

  • Pregunta

  • Saludos a todos.

    Necesito conocer los meses contenidos entre dos fechas. Por ejemplo:

    FechaInicial = 01/11/2015
    FechaFinal = 31/03/2016

    el resultado que requiero es:

    Noviembre 2015
    Diciembre 2015
    Enero 2016
    Febrero 2016
    Marzo 2016

    Agradecido de antemano.


    Manuel Luengo Gaete

    jueves, 11 de junio de 2015 20:01

Todas las respuestas

  • Hola manuel.softmedia podrías emplear el siguiente código:

    --DATENAME -> Muestra el valor en letras en este caso MM equivalente a Mes

    select distinct DATENAME(MM,FechaInicial) as Mes from Tabla where FechaInicial >= '1994-01-04'and FechaFinal <= '1994-08-04'

    Espero haberte ayudado.


    jueves, 11 de junio de 2015 20:13
  • Hola manuel.softwamedia,

    Intenta hacer lo siguiente:

    declare @fechainicial date = '20151101';
    declare @fechafinal date = '20160331';
    
    while (@fechainicial < @fechafinal)
    begin
    	select datename(month, @fechainicial) + ' ' + cast(year(@fechainicial) as nvarchar(4));
    
    	set @fechainicial = dateadd(month, 1, @fechainicial);
    end
    

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    jueves, 11 de junio de 2015 20:24
  • Hola manuel.softmedia,

    Ahora, si no quieres los resultados por separado, intenta hacer lo siguiente

    declare @fechas table (fecha nvarchar(20));
    declare @fechainicial date = '20151101';
    declare @fechafinal date = '20160331';
    
    while (@fechainicial < @fechafinal)
    begin
    	insert into @fechas select datename(month, @fechainicial) + ' ' + cast(year(@fechainicial) as nvarchar(4));
    
    	set @fechainicial = dateadd(month, 1, @fechainicial);
    end
    
    select * from @fechas;

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    jueves, 11 de junio de 2015 20:26
  • Gracias por sus aportes.

    En definitiva lo resolví de la siguiente forma:

      Dim mes As Integer = 0
      Dim fecha As Date
      While FechaInicio <= Fechafinal
            fecha = FechaInicio
            mes = fecha.Month
            FechaInicio = DateAdd(DateInterval.Month, 1, FechaInicio)
    End While
    en la variable mes, obtengo el mes.

    Saludos.


    Manuel Luengo Gaete

    jueves, 11 de junio de 2015 20:32
  • Hola manuel,

    Mil disculpas, equivoque la sección del foro y pensé que estaba en SQL Server por eso te puse código T-SQl, pero veo que te sirvió la lógica.

    jueves, 11 de junio de 2015 20:35
  • Por supuesto, agradecido por los aportes.
    Obviamente me sirvieron de mucho.

    Gracias


    Manuel Luengo Gaete

    jueves, 11 de junio de 2015 20:52