Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 25-ene-2008, 03:44   #1 (permalink)
sfx4ever ha deshabilitado el karma
 
Avatar de sfx4ever
 
Fecha de Ingreso: noviembre-2003
Ubicación: aqui
Mensajes: 268
fallo consulta con NOW()

Hola,esta consulta me va bien en el ordenador de desarrollo:

Código HTML:
SELECT * FROM tabla WHERE (tabla.fecha=NOW() )
Sin embargo, cuando paso la aplicación al servidor en producción la misma consulta no me devuelve NADA

¿sera alguna opción de configuración de mysql? Utilizo mysql 5.


Agradezco vuestra ayuda.

Un saludo.
__________________
"Encuentro la televisión muy educativa. Cada vez que alguien la enciende, me retiro a otra habitación y leo un libro."
sfx4ever está desconectado   Responder Citando
Antiguo 25-ene-2008, 10:41   #2 (permalink)
hualro ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Re: fallo consulta con NOW()

Hola sfx4ever,
probablemente sea porque now() te toma la fecha pero con todo y minutos y segundos por lo que igualarlo con un campo fecha sea un poco difícil que de resultados, lo más práctico es igualarlo con una función que te da la fecha de hoy pero sin minutos y segundos... que sería esta: CURDATE( )
con esta tienes más probabilidades de obtener resultados

Saludos!
hualro está desconectado   Responder Citando
Antiguo 26-ene-2008, 09:42   #3 (permalink)
gnzsoloyo tiene algunos puntos positivos de karma
 
Avatar de gnzsoloyo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 823
Re: fallo consulta con NOW()

Mas o menos así.
No te devuelve nada porque como te dice hualro, la representación de la función NOW() es:
Cita:
"YYYY-MM-DD hh:mm:ss"
y eso simplemente porque lo que devuelve es un DATETIME.

De modo que para que exista una coincidencia, el valor almacenado en la tabla debería ser EXACTAMENTE IGUAL AL MOMENTO DE EJECUCIÓN DE LA CONSULTA, cosa lógicamente imposible (para ello debería almacenar y consultar en el mismo segundo exacto).
El tema es que si lo que quieres es recuberar los registros almaenados con fecha de este mismo día, puedes usar dos formas:
- La función CURDATE(), como te menciona hualro, que te devuelve un DATE.
- Realizar la consulta así:
Cita:
SELECT * FROM tabla WHERE tabla.fecha=DATE(NOW() );
suponiendo que tabla.fecha es un DATE, o bien:
Cita:
SELECT * FROM tabla WHERE DATE(fecha)=DATE(NOW() )
si es un datetime.
gnzsoloyo está desconectado   Responder Citando
Antiguo 28-ene-2008, 05:09   #4 (permalink)
sfx4ever ha deshabilitado el karma
 
Avatar de sfx4ever
 
Fecha de Ingreso: noviembre-2003
Ubicación: aqui
Mensajes: 268
Re: fallo consulta con NOW()

gracias a los dos, ya lo he solucionado
__________________
"Encuentro la televisión muy educativa. Cada vez que alguien la enciende, me retiro a otra habitación y leo un libro."
sfx4ever está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:45.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93