Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

select segun el año y mes actual

Estas en el tema de select segun el año y mes actual en el foro de Mysql en Foros del Web. Hola, necesito hacer una seleccion de datos en una tabla pero que en la condicion pueda indicar que sera del año y mes actual, algo ...
  #1 (permalink)  
Antiguo 21/01/2011, 23:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 0
select segun el año y mes actual

Hola, necesito hacer una seleccion de datos en una tabla pero que en la condicion pueda indicar que sera del año y mes actual, algo asi:

Cita:
SELECT SUM(SubTotalGravabado+SubtotalExento) AS SubTotal FROM Facturas WHERE MONTH(NOW())
en el sql anterior esa condicion no funciona, la idea es que le pueda indicar que sea dentro del año y el mes actual.

espero haberme explicado bien, cualquier idea se las agradecere...
  #2 (permalink)  
Antiguo 22/01/2011, 05:13
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 18 años, 2 meses
Puntos: 12
Respuesta: select segun el año y mes actual

Hola
Pues debería ser así:
Código MySQL:
Ver original
  1. SELECT SUM(SubTotalGravabado+SubtotalExento) AS SubTotal
  2. FROM Facturas
  3. WHERE YEAR(campoFecha)=YEAR(CURDATE()) AND MONTH(campoFecha)=MONTH(CURDATE())
Suponiendo que el campo en el que guardas la fecha se llame campoFecha.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 22/01/2011, 06:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 10 meses
Puntos: 2658
Respuesta: select segun el año y mes actual

Hay muchas formas de escribir la sentencia, dependiendo de la función elegida. La más ortodoxa es la que te pone Mahalo.
Otra podría ser:
Código MySQL:
Ver original
  1. SELECT SUM(SubTotalGravabado+SubtotalExento) SubTotal
  2. FROM Facturas
  3. WHERE DATE_FORMAT(campoFecha, '%m/%Y')=DATE_FORMAT(CURDATE(), '%d/%Y');
El resultado debería ser el mismo; la diferencia estaría en la perfomance de la consulta en una base de datos grande (en una pequeña no se podría percibir), porque en un caso usas valores numéricos y en el otro comparación de cadenas; pero en uno usas dos comparaciones y en el otro una... Pueden tener la misma o diferente performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/01/2011, 08:13
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 18 años, 2 meses
Puntos: 12
Respuesta: select segun el año y mes actual

Sí es obvio que una sola comparación es mejor que dos. Era por explicar el error en la consulta de Natsumy. Otra manera sería especificar que la fecha ha de ser mayor al primer día del mes actual (suponiendo que no hay fechas futuras en la bd).
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #5 (permalink)  
Antiguo 22/01/2011, 08:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 10 meses
Puntos: 2658
Respuesta: select segun el año y mes actual

Buena observación.
Yo me olvidé de mencionar que desde el punto de vista de los procesos internos, una comparación numérica es siempre más eficiente que una comparación de cadenas. En ese sentido, la solución de dos comparaciones numéricas podría ser más rápida que una de cadena.
Como verás, Natsumy, hay más de una forma de mirar el mismo problema, y consieguir soluciones.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 23/01/2011, 16:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: select segun el año y mes actual

Hola Mahalo, gnzsoloyo de verdad que muchas gracias por su ayuda la verdad he tenido un dolor de cabeza con eso... lo he probado y me funciona justo como yo necesitaba, de nuevo gracias por su valiosa ayuda.

Etiquetas: año, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:01.