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

Mysql y el tratemiendo de fechas

Estas en el tema de Mysql y el tratemiendo de fechas en el foro de Bases de Datos General en Foros del Web. tengo una aplicacion con tratamiento de fechas y quier comparar que una factura este dentro de un rango de fechas, cuando ejecuto la consulta no ...
  #1 (permalink)  
Antiguo 03/05/2010, 12:44
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Mysql y el tratemiendo de fechas

tengo una aplicacion con tratamiento de fechas y quier comparar que una factura este dentro de un rango de fechas, cuando ejecuto la consulta no me da error pero tampoco me la compara bien, intento comparar un campo de Mysql fecha sin hora con un YYYY-MM-DD generado por mi, pero nada, alguna idea??

Tengo entendido que en mysql no se puede hacer conversion de formato como con oracle.
  #2 (permalink)  
Antiguo 03/05/2010, 12:54
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, 5 meses
Puntos: 2658
Respuesta: Mysql y el tratemiendo de fechas

Cita:
Tengo entendido que en mysql no se puede hacer conversion de formato como con oracle.
Falso. Se puede cambiar el formato.
Consulta el manual de referencia para saber cómo se manejan las fechas: 12.5. Funciones de fecha y hora
Cita:
tengo una aplicacion con tratamiento de fechas y quier comparar que una factura este dentro de un rango de fechas, cuando ejecuto la consulta no me da error pero tampoco me la compara bien, intento comparar un campo de Mysql fecha sin hora con un YYYY-MM-DD generado por mi, pero nada, alguna idea??
Postea la/s sentencia/s usadas para ver qué estás haciendo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/05/2010, 01:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Mysql y el tratemiendo de fechas

SELECT factura.num_factura, cliente.nombre, factura.importe_total, factura.fecha_emision, factura.fecha_cobro
FROM factura, cliente
WHERE factura.cliente_id=cliente.id AND cliente.id= 623 AND fecha_emision BETWEEN 2010/1/1 AND 2010/12/31

esta es la query, tambien lo he intentado con - en vez de /
  #4 (permalink)  
Antiguo 04/05/2010, 22:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 81
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Mysql y el tratemiendo de fechas

Hola, por que no lo intentas asi:

Código MySQL:
Ver original
  1. SELECT factura.num_factura, cliente.nombre, factura.importe_total, factura.fecha_emision, factura.fecha_cobro
  2. FROM factura factura LEFT JOIN cliente cliente ON factura.cliente_id = cliente.id
  3. WHERE cliente.id= 623 AND (factura.fecha_emision >='2010-01-01' AND factura.fecha_emision <= '2010-12-31')

Saludos.
  #5 (permalink)  
Antiguo 05/05/2010, 03:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Mysql y el tratemiendo de fechas

Gracias funciona de maravilla ^^
  #6 (permalink)  
Antiguo 05/05/2010, 03:58
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, 5 meses
Puntos: 2658
Respuesta: Mysql y el tratemiendo de fechas

Cita:
Iniciado por mgarciarmon Ver Mensaje
SELECT factura.num_factura, cliente.nombre, factura.importe_total, factura.fecha_emision, factura.fecha_cobro
FROM factura, cliente
WHERE factura.cliente_id=cliente.id AND cliente.id= 623 AND fecha_emision BETWEEN 2010/1/1 AND 2010/12/31

esta es la query, tambien lo he intentado con - en vez de /
Por lo pronto, estás escribiendo mal las fechas. Lo que estás poniendo son operaciones aritméticas de división (2010 divido 1 dividido 1), y por otro lado, es innecesario usar ese tipo de rangos cuando el período ya tiene su propia estructura (es un año).

Código MySQL:
Ver original
  1.    F.num_factura,
  2.    C.nombre,
  3.     F.importe_total,
  4.     F .fecha_emision,
  5.     F.fecha_cobro
  6. FROM factura F INNER JOIN cliente C ON F.cliente_id=C.id
  7.     C.id= 623 AND  
  8.     fecha_emision BETWEEN '2010-01-01' AND '2010-12-31';

Es igual al resultado de esto:
Código MySQL:
Ver original
  1.    F.num_factura,
  2.    C.nombre,
  3.     F.importe_total,
  4.     F .fecha_emision,
  5.     F.fecha_cobro
  6. FROM factura F INNER JOIN cliente C ON F.cliente_id=C.id
  7.     C.id= 623 AND  
  8.     YEAR(fecha_emision) = 2010;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fechas, mysql
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 00:19.