[ Foro de SQL (y MySQL) ]

ayuda sql

23-Oct-2017 21:29
bea moncayo
2 Respuestas

¡Hola
Tengo un problema.Tengo unas fechas con este formato YYYYMM y quiero todos los datos que tienen de la maxima fecha a 12 meses anteriores.

Ejemplo

201702
201704
201604
201609
201709

En este caso quiero los datos desde 201709 hasta 201609.

Como puedo hacerlo con sql?

Muchas graicias


26-Oct-2017 09:36
Invitado (FcoJavier)

Suponiendo que la tabla se llama fechas y el campo fecha:

Select fecha from fechas where fecha between '201609' and '201709'


27-Oct-2017 11:17
Nacho Cabanes (+83)

Puedes obtener fechas como incremento o disminución de otras, con órdenes como DATE_ADD y DATE_SUB, según la versión de SQL que utilices. Después ya las compararías con BETWEEN o con > y <.  Eso sí, para susar DATE_ADD y DATE_SUB, las fechas deberían estar en formato YYYY-MM-DD (que no es difícil de obtener a partir de ese).

También puedes manipular esa fecha como cadena y simplemente disminuir en una unidad el carácter de la cuarta posición (aunque debes tener en cuenta que eso puede provocar que también cambien las cifras anteriores, por ejemplo si bajas de 2010 a 2009, y más aún de 2000 a 1999).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)