SoloCodigo
Programación Web y Scripting => PHP => Mensaje iniciado por: field10pg en Martes 29 de Abril de 2008, 00:31
-
Hola gente tengo un pequeño problema que no logro resolver, con el teme de la bsuqueda en tre fechas:
Tengo esto
$consulta = "SELECT * FROM Albaranes WHERE FECHA_ALBARAN between '28/12/2006' and '28/12/2006' ";
y me devuelve el error:
No coinciden los tipos de datos en la expresión de criterios., SQL state 22005
pero si funciona :
consulta = "SELECT * FROM Albaranes WHERE FECHA_ALBARAN like '28/12/2006' ";
no entiendo cual es el problema.
Un saludo a todos
Gracias
-
Probé la primer linea en SQL SERVER 2005 con un campo de tipo datetime y funciona bien.
¿De que tipo es el campo FECHA_ALBARAN?
-
Gracias por contestar Mollense.
El campo es de timpo FECHA/HORA y es un acceso via ODB con una tabla de *.mdb (access).
Pero, he probado poner la fecha completa con las 'd/m/aaaa H:M:S' ó 'aaaa/m/d H:M:S' pero no consigo solucionarlo.
Peso lo raro es que la consulta simple si funciona.
-
Probaste si funciona con otros formatos de fecha ??
P.E, 2008-04-29, 04/29/2008, 20080429, etc. con comillas y sin comillas
Y otra cosa, ¿Este thread no debería ir en la sección de Bases de Datos?
-
pregunta?
la tabla es la correcta?
el campo esta bien escrito?
el campo tiene valores null?
revise eso primero y creo que la consulta esta bien no tiene nada de malo ya que yo mismo he trabajado con odbc y me funcionan bien las consultas, quizas si pones el cosigo completo podemos ayudarte un poco mas,
saludos,
Neo.
-
la instruccion esta bien...
trata cambiando el formato de la fecha a ver q tal. :blink:
-
el formato de la fecha en las comparaciones es "aaaa/mm/dd".
Debes poner "2006/12/28"
cuando se insertan los datos se utiliza el mismo formato
siempre que el campo FECHA_ALBARAN sea de tipo date
-
Chiscos lo he probado todo el campo es de tipo DATE and Time.
Sigo diciendo lo mismo si hago la consulta solo:
$consulta = "SELECT * FROM Albaranes WHERE FECHA_ALBARAN = '28/12/06' ";
Funciona correctamente pero al poner:
$consulta = "SELECT * FROM Albaranes WHERE FECHA_ALBARAN between '28/12/06' and '29/12/06'";
Me da error:
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios., SQL state 22005 in SQLExecDirect
Un saludo a todos
Gracias
-
Yas esta claro chicos/as:
$consulta = "SELECT * FROM Albaranes WHERE FECHA_ALBARAN between #26/12/2006# and #28/12/2006# by FECHA_ALBARAN";
Tenia que poner el caranter "#" antes y despues de la fecha para que funcione.
Un saludo
Gracias.