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

Resta de fecha.

Estas en el tema de Resta de fecha. en el foro de Mysql en Foros del Web. Podrían ayudarme con una consulta que registre una fecha, que pueda agregar otra fecha y al finar éstas restarlas para saber cuánto tiempo pasó? Es ...
  #1 (permalink)  
Antiguo 20/06/2014, 11:03
pako1707
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Resta de fecha.

Podrían ayudarme con una consulta que registre una fecha, que pueda agregar otra fecha y al finar éstas restarlas para saber cuánto tiempo pasó?

Es para una mesa de ayuda, necesito saber cuándo se ingresó un registro, cuándo finalizó el registro y mostrar la diferencia de horas y días (o meses o años), para así cobrar por horas y minutos.

Nunca he trabajado con fechas así que podrían ayudarme desde la creación de la tabla??

Muchas gracias desde ya!!
  #2 (permalink)  
Antiguo 20/06/2014, 16:36
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: Resta de fecha.

El asunto de las restas de fecha, es un tema recurrente. Hay muchos posts (algunos recientes) donde se ha tratado el problema. Te recomiendo usar el buscador del foro.
Las soluciones básicas las puedes encontrar en el manual de referencia de MySQL (12.5. Funciones de fecha y hora)
En especial funciones tales como:
Cita:
SUBDATE(date,INTERVAL expr type), SUBDATE(expr,days)

Cuando se invoca con la forma INTERVAL del segundo argumento, SUBDATE() es sinónimo de DATE_SUB(). Para información del argumento INTERVAL , consulte la discusión para DATE_ADD().
Código MySQL:
Ver original
  1. mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
  2.         -> '1997-12-02'
  3. mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
  4.         -> '1997-12-02'

La siguiente forma permite el uso de un valor entero para days. En tales casos, es el número de días a ser borrados de la expresión fecha o fecha/hora expr.
Código MySQL:
Ver original
  1. mysql> SELECT SUBDATE('1998-01-02 12:00:00', 31);
  2.         -> '1997-12-02 12:00:00'

Nota no puede usar formato "%X%V" para convertir una cadena año-semana en fecha ya que la combinación de un año y semana no identific unívocamente un año y semana si la semana atraviesa la forntera de un mes. Para convertir un año-semana a fecha, debe especificar el día de la semana:
Código MySQL:
Ver original
  1. mysql> select str_to_date('200442 Monday', '%X%V %W');
  2. -> 2004-10-18
En cuanto a enseñar de cero, y partiendo desde la creación de la tabla... en realidad en este tipo de foros la idea es que muestres algo de tu trabajo, algo de lo que intentaste. Regalar código, no lo regalamos. Pero te podemos guiar para que obtengas las solución.
A fin de cuentas, el trabajo está en tus manos, no en las nuestras...
Espero que lo sepas entender
__________________
¿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 23/06/2014, 10:00
pako1707
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resta de fecha.

Gracias por contestar, ya tengo un formulario hecho con todas sus tablas, para ingresar un registro, lo que me gustaría es que cuando presione el botón enviar registro, aparezca la hora en que fue registrado, o sea automáticamente. Como cuando respondemos un post, se queda registrada la fecha de cuándo fue añadido, subo el form?
  #4 (permalink)  
Antiguo 23/06/2014, 10:04
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: Resta de fecha.

La tabla tiene que tener una columna DATETIME para almacenar la fecha y hora de la inserción, que puede o no ser enviada desde el formulario (decisión de diseño), luego del insert, devuelves esa fecha y hora al formulario para actualizar.
Es más tema de programación que de BBDD.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/06/2014, 23:03
Avatar de Emaiengiou  
Fecha de Ingreso: septiembre-2013
Ubicación: Colombia
Mensajes: 14
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Resta de fecha.

Hola, Saludos!
Como te han respondido, depende mas de programación que de base de datos. y por ende, de que lenguaje usas para manejar las fechas y la hora. Por ejemplo si tu proyecto es web, con la etiqueta <input type="date" name"fechaRegistro" required/> por ejemplo, puedes seleccionar una fecha y almacenarlo en un campo de tipo DATE de tu BD.

para restar por ejemplo, puedes utilizar PHP y obtener la fecha en una variable y separar las fechas por signos como "-" el guion, por medio de la funcion explode("-",fechaReg); y eso te devolveria un vector con todos los datos separados por el signo.

Es solo un ejemplo, depende del lenguaje que uses, porque PHP por ejemplo usa las variables date("FORMAT") que son excelentes. Espero te haya servido de ayuda, SALUDOS!

:D

Etiquetas: registro, resta, tabla
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 09:03.