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

Duda de fechas

Estas en el tema de Duda de fechas en el foro de Mysql en Foros del Web. Buenas, Tengo una duda y no se si se puede resolver con alguna función de mysql, por mas que he buscado no he encontrado nada! ...
  #1 (permalink)  
Antiguo 22/12/2008, 16:00
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Duda de fechas

Buenas,

Tengo una duda y no se si se puede resolver con alguna función de mysql, por mas que he buscado no he encontrado nada!

Mi objetivo es el siguiente:

Partiendo que tenemos una BBDD que va llenándose de registros cada día. Me interesa poder realizar una búsqueda de registros por el día actual.

El problema es que también me interesa la hora del registro por eso he declarado el elemento fecha como timestamp(12) esto hace que los datos me los guarde así "2008-12-22 22:31:35" bien porque tenia la hora y la fecha... pero a la hora de intentar hacer la consulta por el día de hoy no es capaz de distinguirlo.

He probado con select date(fecha) donde teoricamente me devuelve solo la fecha del campo "fecha" pero al hacer la comparación no me lo coge. Lo veo lógico ya que estoy comparando "2008-12-22 22:31:35" con "2008-12-22"

Entonces creéis conveniente que gaste dos campos en la BBDD uno para guardar la fecha y otro para guardar la hora?

Gracias de antemano!
  #2 (permalink)  
Antiguo 23/12/2008, 00:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Duda de fechas

No uses dos campos para eso. Emplea, como sugieres, la función DATE() para comparar la parte de tu campo que sea fecha con la fecha de hoy, que pondrás como CURDATE().
Prueba esto:

Código sql:
Ver original
  1. SELECT campo1, campo2, DATE(campofecha) fecha WHERE DATE(campofecha) = CURDATE();

Última edición por jurena; 23/12/2008 a las 00:26
  #3 (permalink)  
Antiguo 23/12/2008, 02:59
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Duda de fechas

Cita:
Iniciado por jurena Ver Mensaje
No uses dos campos para eso. Emplea, como sugieres, la función DATE() para comparar la parte de tu campo que sea fecha con la fecha de hoy, que pondrás como CURDATE().
Prueba esto:

Código sql:
Ver original
  1. SELECT campo1, campo2, DATE(campofecha) fecha WHERE DATE(campofecha) = CURDATE();
Y como hago para extraer la hora del campo fecha si me aparece en formato "2008-12-22 22:31:35" cuando lo recupero de la BBDD para mostrarla en mi página php?

Gracias!
  #4 (permalink)  
Antiguo 23/12/2008, 03:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Duda de fechas

fácil: usas HOUR(campofecha) hora y lo pones en el SELECT
select HOUR(campofecha) hora FROM tutabla

Naturalmente, puedes recuperar, minutos, segundos, etc. con MINUTE(campofecha), SECOND(campofecha) y mucho más.

echa un vistazo a las funciones de fecha y hora de MySQL
http://dev.mysql.com/doc/refman/5.1/...functions.html
  #5 (permalink)  
Antiguo 23/12/2008, 15:36
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Duda de fechas

Cita:
Iniciado por jurena Ver Mensaje
fácil: usas HOUR(campofecha) hora y lo pones en el SELECT
select HOUR(campofecha) hora FROM tutabla

Naturalmente, puedes recuperar, minutos, segundos, etc. con MINUTE(campofecha), SECOND(campofecha) y mucho más.

echa un vistazo a las funciones de fecha y hora de MySQL
http://dev.mysql.com/doc/refman/5.1/...functions.html
Gracias, me sirvió de mucho!
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:17.