Foros del Web » Programando para Internet » PHP »

consulta rango fechas php + mysql

Estas en el tema de consulta rango fechas php + mysql en el foro de PHP en Foros del Web. hola, bueno tengo esta instrucción que la alimento con php, (emprimi con echo la variable $sql y me da esto) SELECT * FROM entradas WHERE ...
  #1 (permalink)  
Antiguo 21/04/2009, 18:34
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
consulta rango fechas php + mysql

hola, bueno tengo esta instrucción que la alimento con php, (emprimi con echo la variable $sql y me da esto)

SELECT * FROM entradas WHERE fecharecibido BETWEEN 11/12/2008 AND 21/4/2009 Order by id_registro DESC

pero no encuentra ningun resultado, donde resulta que si hay, bueno si quito el where si sale mucha informacion e incluso esa fechas las tome de unos registros, pienso que el problema puede ser que los campos no son datetime sino varchar, hay alguna forma de hacerlo con valores varchar? gracias.
  #2 (permalink)  
Antiguo 21/04/2009, 18:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: consulta rango fechas php + mysql

Cita:
pienso que el problema puede ser que los campos no son datetime sino varchar, hay alguna forma de hacerlo con valores varchar?
Ese es exactamente el problema.

Es mejor que pases todos tus campos a DATE o sino guarda el Unix Timestamp, ya que con varchars, programando algun algoritmo, te vas a liar mas de lo necesario.
  #3 (permalink)  
Antiguo 21/04/2009, 18:50
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: consulta rango fechas php + mysql

si, l oque pasa es que tengo como 600 registros ya en la base de datos, intente convertir esos campos a datetime pero me borra el valor actual, y pues restaure un respaldo que tengo, n ose como podria hacer para arreglar eso en la base de datos para no volver a agregar uno por uno.

a que te refieres con guardar el unix timestamp?

gracias por tu respuesta =)

Última edición por Mcruzmx; 21/04/2009 a las 18:50 Razón: agradecer
  #4 (permalink)  
Antiguo 21/04/2009, 18:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: consulta rango fechas php + mysql

Cita:
si, l oque pasa es que tengo como 600 registros ya en la base de datos, intente convertir esos campos a datetime pero me borra el valor actual, y pues restaure un respaldo que tengo, n ose como podria hacer para arreglar eso en la base de datos para no volver a agregar uno por uno.
Haz un script que lo haga por ti.

Código php:
Ver original
  1. <?php
  2.  
  3. //Crea un campo EXTRA en la base de datos tipo DATE, con el nombre que desees
  4. //Para este ejemplo yo supuse que lo llamaste "fecha2"
  5.  
  6. //Te conectas a MySQL
  7.  
  8. $result = mysql_query("SELECT id, fecha FROM tabla");
  9. while($row = mysql_fetch_assoc($result)) {
  10.     $id = $row['id'];
  11.     list($dia, $mes, $anio) = explode("/", $row['fecha']);
  12.     $new_fecha = "$anio-$mes-$dia";
  13.     mysql_query("UPDATE tabla SET fecha2 = '$new_fecha' WHERE id = $id");
  14. }
  15.  
  16. //Ejecutas el archivo, cuando termine ...
  17. //entonces ya puedes eliminar el campo fecha (el viejo)
  18. //y renombras el campo fecha2 a fecha
  19.  
  20. ?>

Probablemente se pueda directamente desde MySQL, pero ignoro como hacerlo. Si alguien sabe, que lo ponga (asi hasta yo aprendo).
  #5 (permalink)  
Antiguo 21/04/2009, 19:22
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: consulta rango fechas php + mysql

wow, que inteligente, lo probare =9 gracias enserio amigo
  #6 (permalink)  
Antiguo 21/04/2009, 20:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: consulta rango fechas php + mysql

Con MySQL podrías hacer así:
Código MySQL:
Ver original
  1. UPDATE tabla SET fecha = STR_TO_DATE(fecha, '%d/%m/%Y');
Eso cambiará todos los registros del campo fecha al formato de fecha de MySQL 'YYYY-MM-DD', con lo cual, ya no tendrías problemas a la hora de convertir el tipo de dato del campo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/04/2009, 19:15
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: consulta rango fechas php + mysql

estoy usando
UPDATE tabla SET fecha = STR_TO_DATE(fecha, '%d/%m/%Y');

me ha sido muy util, como lo podria hacer si tengo los datos en unos campos como dd/mm/aaaa h:m:s (horas, minutos, segundos) y el nuevo campo datetime

gracias =)
  #8 (permalink)  
Antiguo 22/04/2009, 19:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: consulta rango fechas php + mysql

Puedes usar:
Código MySQL:
Ver original
  1. UPDATE tabla SET fecha = STR_TO_DATE(fecha, '%d/%m/%Y %H:%i:%s');
Para más información, puedes revisar: http://dev.mysql.com/doc/refman/5.0/...functions.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 22/04/2009, 20:01
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: consulta rango fechas php + mysql

gracias! lo hice con %T =)
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 01:25.