Esta es la solución más válida que te podemos dar, sin embargo estúdiala detenidamente y analiza si es compatible a tu proyecto.
Solución:
Para MS SQL Server, puede usar:
where datetime_column >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6,
current_timestamp)), 0)
en mysql
where datetime_column > curdate() - interval (dayofmonth(curdate()) - 1) day - interval 6 month
Demostración de SQLFiddle
En servidor SQL
where datetime_column > dateadd(m, -6, getdate() - datepart(d, getdate()) + 1)
Demostración de SQLFiddle
prueba este
where datediff(month, datetime_column, getdate()) <= 6
Para excluir o filtrar fechas futuras
where datediff(month, datetime_column, getdate()) between 0 and 6
Esta parte datediff(month, datetime_column, getdate())
obtendrá la diferencia de mes en el número de fecha actual y Datetime_Column y devolverá Filas como:
Resultado
1
2
3
4
5
6
7
8
9
10
Esta es nuestra condición final para obtener los datos de los últimos 6 meses
donde resultado <= 6
Comentarios y puntuaciones
Si para ti ha sido provechoso nuestro artículo, sería de mucha ayuda si lo compartes con otros programadores así contrubuyes a difundir nuestra información.