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

Problemas con operacion SQL

Estas en el tema de Problemas con operacion SQL en el foro de Mysql en Foros del Web. Hola que tal, quisiera saber si puedo hacer lo siguiente: Tengo 2 campos: Dia_creacion: 08/04/2014 4:00 am Dia_actualizacion: 25/04/2014 7:00 pm y ocupo sacar los ...
  #1 (permalink)  
Antiguo 16/04/2014, 11:48
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 6 meses
Puntos: 1
Problemas con operacion SQL

Hola que tal, quisiera saber si puedo hacer lo siguiente:
Tengo 2 campos:
Dia_creacion: 08/04/2014 4:00 am
Dia_actualizacion: 25/04/2014 7:00 pm

y ocupo sacar los dias transcurridos entre las dos fechas en un query para formar una columna, pero si se dan cuenta ahi viene la hora pegada, que me sugieren?
  #2 (permalink)  
Antiguo 16/04/2014, 11:53
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: Problemas con operacion SQL

¿Lo tienes como DATETIME o como VARCHAR?
__________________
¿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 16/04/2014, 12:08
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Problemas con operacion SQL

varchar, ya tengo cortadas las cadenas con SUBSTRING, ahora solo me falta la opeeracion
  #4 (permalink)  
Antiguo 16/04/2014, 12:17
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Problemas con operacion SQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Lo tienes como DATETIME o como VARCHAR?
Intento esto:
Código MySQL:
Ver original
  1. DATEDIFF(dd,SUBSTRING(creacionDate,1, 9),SUBSTRING(updateDate,1, 9)

pero sale error, me imagino que es por que el tipo de campo es cadena...
  #5 (permalink)  
Antiguo 16/04/2014, 12:34
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: Problemas con operacion SQL

Tal ves sea buena idea cortarla, pero lamento decirte que lo que tienes son datos basura.
No se deben guardar JAMAS las fechas como VARCHAR.
Ahora, para poder haber una consulta correcta deberás usar funciones de fecha, especificamente STR_TO_DATE().
Código MySQL:
Ver original
  1. SELECT STR_TO_DATE(Dia_creacion, '%d/%m/%Y %r') creacion, STR_TO_DATE(Dia_actualizacion, '%d/%m/%Y %r'), TIMESTAMPDIFF(DAY, DATE(STR_TO_DATE(Dia_creacion, '%d/%m/%Y %r')), DATE(STR_TO_DATE(Dia_actualizacion, '%d/%m/%Y %r'))) dias_Diferencia
  2. FROM tabla;
Cita:
que me sugieren?
En realidad lo que te conviene hacer es primero regularizar esos datos, corrigiendo lo que tienes por un formato correcto de datos. La sintaxis y los procesos se simpleificarán muchísimo, aún cuando eso signifique corregir la aplicación.
No hacerlo sólo significará tener que lidiar con este problema en forma constante.
__________________
¿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 16/04/2014, 12:48
 
Fecha de Ingreso: septiembre-2012
Mensajes: 112
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Problemas con operacion SQL

Entonces no las corto?
  #7 (permalink)  
Antiguo 16/04/2014, 14:29
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: Problemas con operacion SQL

Prueba la consulta, pero sin cortar nada.
Afinemos un poco, porque no alamcenaste los segundos:
Código MySQL:
Ver original
  1. SELECT STR_TO_DATE(Dia_creacion, '%d/%m/%Y %l:%i %p') creacion, STR_TO_DATE(Dia_actualizacion, '%d/%m/%Y %l:%i %p'), TIMESTAMPDIFF(DAY, DATE(STR_TO_DATE(Dia_creacion, '%d/%m/%Y %l:%i %p')), DATE(STR_TO_DATE(Dia_actualizacion, '%d/%m/%Y %l:%i %p'))) dias_Diferencia
  2. FROM tabla;
__________________
¿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: campo, operacion, sql
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 23:31.