Foros del Web » Programando para Internet » PHP »

mostrar solo los registros de HOY

Estas en el tema de mostrar solo los registros de HOY en el foro de PHP en Foros del Web. hola amigos.....utilizo lo siguiente para mostrar los registros de mi base de datos: Código PHP: mysql_db_query ( "inticomp" , "select * from gestion Order By c_fecha DESC" );  el campo c_fecha es ...
  #1 (permalink)  
Antiguo 26/02/2003, 21:49
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
mostrar solo los registros de HOY

hola amigos.....utilizo lo siguiente para mostrar los registros de mi base de datos:
Código PHP:
mysql_db_query("inticomp","select * from gestion Order By c_fecha DESC"); 
el campo c_fecha es un campo DATETIME y utilizo la funcion NOW() de mysql para tomar la fecha y hora de hoy......lo que quiero hacer es solo mostrar los registros que se agregaron el dia de HOY

Desde Ya Muchas Gracias!
  #2 (permalink)  
Antiguo 27/02/2003, 06:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Así de simple .. usando un condicional WHERE ....

mysql_db_query("inticomp","select * from gestion Order By c_fecha DESC WHERE campo_fecha_tuyo=NOW()");

Revisa el manual de Mysql -> www.mysql.com/doc y busca ahi la sintax completa de SELECT

Un saludo,
  #3 (permalink)  
Antiguo 27/02/2003, 09:03
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Ten en cuenta que DATETIME contiene día y hora, si usas NOW(), sólo te devolverá los registros en que coincida el día y la hora. Lo mejor sería usar:

"SELECT * FROM tabla WHERE LEFT(fecha, 10) LIKE '".date("Y-m-d")."%' ORDER BY criterio ";
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 27/02/2003, 11:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, Cain .. (no me percaté del detallito de NOW() xD) ya puestos no sería mejor hacerlo todo en Mysql?

SELECT * FROM tabla WHERE LEFT(campo_fecha,10)=CURDATE() ORDER BY criterio

CURDATE() da la Fecha actual (solo fecha .. no fecha y hora como el NOW() ..)

El left .. ya lo ven . Dejar el campo_fecha a 10 caracteres yyyy-dd-mm

Y .. usando LIKE podría ser: (no lo he probado):
SELECT * FROM tabla WHERE campo_fecha LIKE 'CURDATE()%' ORDER BY criterio


Un saludo,
  #5 (permalink)  
Antiguo 27/02/2003, 12:31
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
SELECT * FROM tabla WHERE campo_fecha LIKE 'CURDATE()%' ORDER BY criterio

mecccc!!!!

Eso evaluar CURDATE() como texto, no como función. Pero lo demás está perfecto

De todos modos, yo sigo prefiriendo el sistema "mixto" porque lo veo más claro
__________________
M a l d i t o F r i k i
  #6 (permalink)  
Antiguo 27/02/2003, 14:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Mensaje Original por Cain
SELECT * FROM tabla WHERE campo_fecha LIKE 'CURDATE()%' ORDER BY criterio

mecccc!!!!

Eso evaluar CURDATE() como texto, no como función. Pero lo demás está perfecto

De todos modos, yo sigo prefiriendo el sistema "mixto" porque lo veo más claro
Pinsa si tienes que migrar tu BD a otro lenguaje de programación ... si usas PHP por medio de una consulta .. tendrás mas trabajo por hacer ..

Yo siempre recurro a SQL si se puede hacer (q siempre se puede hacer en la mayoria de casos . solo q algunos es mas dificil por supuesto).

Un saludo,
  #7 (permalink)  
Antiguo 27/02/2003, 16:28
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
hola amigos ....gracias por la ayuda, lastima que la funcion CURDATE() solo para Y-m-d y no muestre la hora....ya que necesito mostrar la hora de llegada....porque uso un algoritmo FCFS (First Come First Served) ......y necesito saber la hora....asi que tendre que mezclar algo de SQL con PHP como hizo el amigo CAIN

GRACIAS!
  #8 (permalink)  
Antiguo 04/03/2003, 10:42
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Pequeña mejora que acabo de descubrir mientras probaba tonterías con MySQL

"SELECT * FROM tabla WHERE LEFT(fecha, 10) = LEFT(now(),10) ORDER BY criterio ";

Así lo hace todo MySQL
__________________
M a l d i t o F r i k i

Última edición por Cain; 04/03/2003 a las 10:44
  #9 (permalink)  
Antiguo 04/03/2003, 11:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm

SELECT * FROM tabla WHERE LEFT(fecha, 10) = CURDATE() ORDER BY criterio

Debería ir .. el caso q ya nos estamos metiendo en terreno del foro "Base de datos" .. esto es SQL xD

Un saludo,
  #10 (permalink)  
Antiguo 04/03/2003, 14:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Una pregunta: ¿por que usais el LEFT? ¿No se podria usar DATE_FORMAT?

fmmeson, usan CURDATE() porque quieres los registros de HOY. Pero solo lo usan en el where. En la lista de campos puedes seleccionar la fecha en el formato que quieras con DATE_FORMAT() http://www.mysql.com/doc/en/Date_and...unctions.html.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 04/03/2003, 14:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
DATE_FORMAT() o LEFT en este caso sería lo mismo .. el caso q el campo que usa es tipo DATETIME .. si fuera un DATE con compararlo con CURDATE() sobraría .. pero ademas de la fecha tiene la hora en ese campo.

Por si varia el formato del campo dato (que ahora es DATETIME .. pero podriá ser un DATE solo ..o un TIMESTAMP ..) deberia usarse DATE_FORMAT para obtener la fecha en el formato q usa CURDATE() ... no?

Un saludo,
  #12 (permalink)  
Antiguo 04/03/2003, 16:17
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 0
yo personalmente, como dije ayer, prefiero usar rangos de tiempo (grabar en un campo el time()) y luego hacer un "WHERE fechaalta<=$filtro"
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
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 11:35.