Por ejemplo de Septiembre de 2011 a Mayo de 2012.
BD: SQL Server 2000
Opcion 1: (SIN FUNCIONAR)
Esta consulta no nos devuelve nada debido a que mes es un campo numérico.
select anio, mes from ventas where (anio>=2011 and mes>=9) and (anio<=2012 and mes<=5)
Opcion 2: (no me gustó)
Esta opción nos trae todos los registros de 2011 y 2012, después con código php se pueden usar strtotime y después filtrar los registros que necesitamos.
select anio, mes from ventas where (anio>=2011) and (anio<=2012)
Opcion 3: (sin funcionar)
Intentando concatenar los campos
select anio, mes,(anio+'-'+mes+'-01')
Opcion 4: (sin funcionar)
Concatenando los campos utilizando cast, casi solucionado pero le agrega un espacio en el mes.
select anio, mes, convert (varchar(10),cast(anio as char(4))+'-'+cast(mes as char(2))+'-01',120) from ventas
Opcion 5: (SOLUCIONADO)
Concatenando los campos utilizando las funciones cast, right y convert
select anio, mes, convert (varchar(10),cast(anio as char(4))+'-'+right('0'+ rtrim(mes), 2)+'-01',120) from ventas WHERE convert (varchar(10),cast(anio as char(4))+'-'+right('0'+ rtrim(mes), 2)+'-01',120) >='2011-09-01' and convert (varchar(10),cast(anio as char(4))+'-'+right('0'+ rtrim(mes), 2)+'-01',120) <='2012-05-01'
Happy Coding!
No hay comentarios.:
Publicar un comentario