Obtener meses de un intervalo de fechas en T-SQL

Hoy se me planteó una cuestión en principio simple, que normalmente he resuelto a nivel de aplicación pero me preguntaba cómo sería el equivalente en T-SQL. El objetivo era listar el conjunto de meses comprendidos entre dos fechas cualesquiera sin usar ninguna tabla ni código que no fuera SQL al 100%. Una posible solución podría ser ésta, aunque se aceptan sugerencias de mejora por vuestra parte. Se devuelven los meses en formato AAAAMM y el intervalo pasado a la query está en formato AAAAMMDD.

Es interesante en esta query el uso de MAXRECURSION, cuya función es la de controlar el número de iteraciones y permitirnos hacer algún debug llegado el caso, pero que dejamos a 0 para que independientemente del número de meses resultantes no de ningún error como el siguiente (caso de poner un valor de 5 y como hemos visto antes en el ejemplo salían 16 registros):



1 comentario :

  1. hola como estas, es el ejemplo que necesito pero no he podido adaptarlo, lo que pasa es que tengo una abse de datos de clientes que hacen compras entre 3 y 4 veces al año, entonces necesito sacar por cliente, los meses transcurridos pero no he podido muchas gracias, espero me pueda ayudar. saludos desde bogota, colombia. sadidmontero@gmail.com

    ResponderEliminar

Buscar en el Blog: