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.