Foros del Web » Programando para Internet » PHP »

Problemas con las odiosas FECHAS

Estas en el tema de Problemas con las odiosas FECHAS en el foro de PHP en Foros del Web. Mi problema es el siguiente: Introduzco en un formulario 2 fechas en un campo de texto con el formato dd/mm/yy (se supone que el usuario ...
  #1 (permalink)  
Antiguo 14/09/2004, 03:23
 
Fecha de Ingreso: septiembre-2002
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Problemas con las odiosas FECHAS

Mi problema es el siguiente:

Introduzco en un formulario 2 fechas en un campo de texto con el
formato dd/mm/yy (se supone que el usuario lo ha metido bien).
Quiero hacer una consulta que me muestre unos determinados registros
entre la fecha 1 y la fecha 2.

Mi problema es que, de todas las funciones de fecha que vienen en manuales SQL y tutoriales, no me funciona ninguna. Me sale el mensaje de error de que la funcion no esta definida en la consulta.

He probado a usar de todo: DATE(), STR_TO_DATE(), DATE_FORMAT() dentro de la consulta
asi como tambien intentar transforma a fecha antes de la consulta, es decir con las funciones PHP strtotime, date, etc. Aun asi no hay manera de conseguir listar en mi aplicacion php los registros entre 2 fechas.

Os pego algo de código para ver quien me lo podria solucionar.

<code>
function muestra_consulta($fecha1,$fecha2)
{
$con = odbc_connect('prueba','','');

if ($con) //Si la conexión se produce, ejecuto la primera consulta
{
$sql1="select modelo, versión, matricula, vendedor, satelites, f_matricula as fecham
from bd_coches
where f_matricula between $fecha1 and $fecha2
order by f_matricula
";
</code>

Los parámetros $fecha1 y $fecha2 son strings. ¿Qué debo incluir y donde para que mi consulta funcione?

Gracias de antemano.
  #2 (permalink)  
Antiguo 14/09/2004, 04:09
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

2 cosas:
Cita:
formato dd/mm/yy
PHP y la mayoria de bases de datos estan hechas por ingleses, y ese formato que dices es castellano. Asi que necesitas pasarla a un formato que entienda PHP y/o la base de datos. El formato "normal" que puede servirte es YYYY/MM/DD.
Cita:
$sql1="select modelo, versión, matricula, vendedor, satelites, f_matricula as fecham
from bd_coches
where f_matricula between $fecha1 and $fecha2
order by f_matricula
";
Cada base de datos puede tener una sintaxis especial para indicar que un valor es una fecha. En MySQL hay que ponerlas entre comillas, en otras entre #. Tienes que hacer que la consulta corresponda con esa sintaxis. En este caso, la consulta que intentas ejecutar es:

select modelo, versión, matricula, vendedor, satelites, f_matricula as fecham
from bd_coches
where f_matricula between 1/9/04 and 9/9/04
order by f_matricula

Si la sintaxis para fechas de tu BD es distinta, no te funcionara. Primero averigua como tiene que ser la sintaxis correcta, y luego usa PHP para generar la consulta con los valores.

Saludos.

PD: Como no veo relacion directa con PHP-GTK, la muevo a PHP. Si tienes dudas sobre la sintaxis de la consulta para tu BD, mejor pregunta en el foro de base de datos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 05:25.