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

como mostrar la fecha

Estas en el tema de como mostrar la fecha en el foro de Mysql en Foros del Web. saludos amigos, tengo el siguiente problema...a una consulta le estoy pasando 2 fechas: fecha1 y fecha2 y la consulta es la siguiente @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 05/08/2009, 11:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
como mostrar la fecha

saludos amigos, tengo el siguiente problema...a una consulta le estoy pasando 2 fechas: fecha1 y fecha2 y la consulta es la siguiente
Código mysql:
Ver original
  1. "SELECT nortepordia.id Medidor,locales_norte.nombre Local,nortepordia.fecha Inicio_Reporte,sum(nortepordia.lectura) Consumo   from nortepordia,locales_norte where nortepordia.id = locales_norte.id  and fecha between '"& fecha1&"' and '"& fecha2&"' group by nortepordia.id "

el tema es que solo me muestra la fecha1 cuando muestra la consulta, me gustaria mosrar hambas fechas, si alguien me puede decir como hacerlo u orientarme un poco, gracias...
  #2 (permalink)  
Antiguo 05/08/2009, 16:11
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: como mostrar la fecha

intente con where fecha >= '$fecha1' and fecha <= '$fecha2' y me cuenta si le funciona
  #3 (permalink)  
Antiguo 05/08/2009, 16:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: como mostrar la fecha

Es muy probable que tu problema no sea la sentencia SQL, sino el formato de la fecha.
MySQL usa un estándar universal para almacenarla que es "aaaa-mm-dd", por lo que si la estás introduciendo como "dd-mm-aaaa", no podrás obtener resultados.
Si esa es la razón, como infiero por la isntaxis que estás usando VB.Net, el problema lo tienes que resolver en la aplicación. Este sería un ejemplo:
Código SQL:
Ver original
  1. SELECT
  2.     nortepordia.id Medidor,
  3.     locales_norte.nombre LOCAL,
  4.     nortepordia.fecha Inicio_Reporte,
  5.     SUM(nortepordia.lectura) Consumo  
  6. FROM nortepordia, locales_norte
  7. WHERE nortepordia.id = locales_norte.id  AND fecha BETWEEN '"& fecha1.ToString("yyyy-MM-dd") &"' AND '"& fecha2.ToString("yyyy-MM-dd") &"'
  8. GROUP BY nortepordia.id;
Si estás usando otro lenguaje, deberás adaptar la idea a ese.

Si estás programando en VB.Net, te aconsejo usar el MySQL Connector.Net, y crear los MysqlCommand parametrizados. Es más fácil y efectivo, además de que no debes ocuparte de hacer conversiones de tipos de dato.
__________________
¿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 06/08/2009, 08:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: como mostrar la fecha

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es muy probable que tu problema no sea la sentencia SQL, sino el formato de la fecha.
MySQL usa un estándar universal para almacenarla que es "aaaa-mm-dd", por lo que si la estás introduciendo como "dd-mm-aaaa", no podrás obtener resultados.
Si esa es la razón, como infiero por la isntaxis que estás usando VB.Net, el problema lo tienes que resolver en la aplicación. Este sería un ejemplo:
Código SQL:
Ver original
  1. SELECT
  2.     nortepordia.id Medidor,
  3.     locales_norte.nombre LOCAL,
  4.     nortepordia.fecha Inicio_Reporte,
  5.     SUM(nortepordia.lectura) Consumo  
  6. FROM nortepordia, locales_norte
  7. WHERE nortepordia.id = locales_norte.id  AND fecha BETWEEN '"& fecha1.ToString("yyyy-MM-dd") &"' AND '"& fecha2.ToString("yyyy-MM-dd") &"'
  8. GROUP BY nortepordia.id;
Si estás usando otro lenguaje, deberás adaptar la idea a ese.

Si estás programando en VB.Net, te aconsejo usar el MySQL Connector.Net, y crear los MysqlCommand parametrizados. Es más fácil y efectivo, además de que no debes ocuparte de hacer conversiones de tipos de dato.
Estoy usando las fechas en formato yyyy-mm-dd y asp, prove tu codigo pero aun no me muestra la fecha de corte...saludos
  #5 (permalink)  
Antiguo 06/08/2009, 08:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: como mostrar la fecha

¿El campo FECHA es DATE o DATETIME en la base?
Según sea, el comportamiento puede ser diferente en la consulta.
__________________
¿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 06/08/2009, 08:34
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: como mostrar la fecha

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿El campo FECHA es DATE o DATETIME en la base?
Según sea, el comportamiento puede ser diferente en la consulta.
el campo es date....
  #7 (permalink)  
Antiguo 06/08/2009, 08:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: como mostrar la fecha

Vamos a asegurarnos que lo que entra es correcto:
Código sql:
Ver original
  1. SELECT
  2.     nortepordia.id Medidor,
  3.     locales_norte.nombre LOCAL,
  4.     nortepordia.fecha Inicio_Reporte,
  5.     SUM(nortepordia.lectura) Consumo  
  6. FROM nortepordia INNER JOIN locales_norte ON nortepordia.id = locales_norte.id  
  7. WHERE DATE(fecha) BETWEEN DATE('"& fecha1.ToString("yyyy-MM-dd") &"') AND DATE('"& fecha2.ToString("yyyy-MM-dd") &"')
  8. GROUP BY nortepordia.id;
Eso deberá convertir lo recibido en una fecha valida, y lo que hay será recortado a DATE. Si salta algún error será porque algo no cumple con el formato de tipo.
Si aún así no te devuelve nada, será mejor que revises manualmente las tablas para asegurarte de que haya registros que puedan cumplir con ambos criterios de filtrado al mismo tiempo.
Si quieres que te devuelva todo lo que hay en la primera, aunque no haya coincidencias (como prueba), reemplaza el INNER JOIN por LEFT JOIN.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 06/08/2009, 09:53
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: como mostrar la fecha

mira creo que nos desviamos del tema o yo no supe explicarme bn.. con la cunsulta que muestro arriba me entrega los siguientes resultados:


id fecha lectura

pero l que necesito es

id fechainicio fechafin lectura


gracias
  #9 (permalink)  
Antiguo 06/08/2009, 10:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: como mostrar la fecha

Vamos a entender:
Tienes en esa tabla solamente un campo fecha, y también tienes el id del medidor. Quieres una síntesis de fecha de inicio, fin id del medidor y total consumido.
Bien, la pregunta es: ¿Cómo determinas el lapso de tiempo que comprende el inicio y el fin, si estás planteando la fecha en un sólo campo?
La consulta se puede hacer, pero debemos determinar cuáles son los inicios y los fines de los períodos. ¿Cuál es el criterio?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 06/08/2009, 11:33
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: como mostrar la fecha

mira la tabla simplificandola seria mas menos esto

id fecha lectura
1 2009/02/01 12
2 2009/02/01 10
1 2009/02/02 14
2 2009/02/02 15

si quisiera consultar el consumo que transcurrio entre la fecha1 =2009/02/01 y fecha2=2009/02/02

entonces quedaria

id fecha lectura
1 2009/02/01 26
2 2009/02/01 25

hasta ahi no tengo mayor problema pero a m me gusatria que quedara (mas que ami es lo que me estan pidiendo) de la siguiente forma:

id fecha inicio fechafin consumo
1 2009/02/01 2009/02/02 26
2 2009/02/01 2009/02/02 25


ese es mi problema, gracias

Última edición por jalh1977; 07/08/2009 a las 09:46
  #11 (permalink)  
Antiguo 07/08/2009, 10:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: como mostrar la fecha

A ver si te sirve esta:

Código sql:
Ver original
  1. SELECT id, MIN(fecha)fecha_inicio, MAX(fecha)fecha_fin, SUM(lectura)consumo FROM `tabla` WHERE fecha BETWEEN '2009-02-01' AND '2009-02-03' GROUP BY id

Piensa que si lo que quieres poner es la hora de inicio y fin por las que tú buscas, puedes hacerlo así:
Código sql:
Ver original
  1. SELECT id,'2009-02-01' AS fecha_inicio, '2009-02-02' AS fecha_fin, SUM(lectura)consumo FROM `tabla` WHERE fecha BETWEEN '2009-02-01' AND '2009-02-03' GROUP BY id

La primera te dará las fechas primera y última de cada id dentro de ese rango de fechas.
  #12 (permalink)  
Antiguo 07/08/2009, 10:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: como mostrar la fecha

Gracias JURENA no sabes de la que me has salvado, es justamente lo que necesitaba....otra vez muchas gracias
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 22:34.