En esta tira de SQL

Tabla.Open "Select count (Num_Paciente) from Examenes_por_Paciente where (Fecha_Examen >= '" + Fechas.DTPicker1.Day + "' AND Fecha_Examen<= '" + Fechas.DTPicker2.Day + "') ", conexion
Como pueden ver quiero hacer que me cuente unos datos entre un periodo de fechas(desde uno menor a uno mayor) y me dice que tengo un error ERROR 13 No coinciden los tipos, espero haberme explicado bien Gracias

1 Respuesta

Respuesta
1
En alguna de las comparaciones estas utilizando datos de distinto tipo. Para poderte dar una respuesta más concreta, necesitaría saber el tipo de datos que tiene cada campo.
Voy a intentarlo con lo que veo.
En primer lugar DAY devuelve un valor numérico, por lo que la asignación seria:
....... WHERE fecha_examen >= '" + str(fechas.dtpiker1.DAY) + "' AND fecha_examen <= '" + str(fechas.dtpiker2.DAY) + "')",conexion
Esto suponiendo que fecha_examen sea alfanumérico. Si fuese numérico sobrarían los apóstrofos. Recuerda que DAY devuelve el día de una variable de tipo fecha, lo cual deduzco es el tipo de fechas. Dtpiker2 y fechas. Dtpiker1.
Espero haberte ayudado. Para más ayuda si sigues teniendo problemas enviame el tipo de variable de cada campo que interviene en el SQL.
Un saludo,
fcosapa
Bien los tipos de datos que tengo en la BD Fecha/Hora y aun así no me da y lo de count(num_paciente)es de tipo texto
¿Estamos hablando de ACCESS?. Si es así, y los campos fechas. Dtpiker1 y 2 son alfanuméricos e introduce el valor en este formato dd-mm-aa, creo que el formato del where debe ser así:
... WHERE fecha_examen >= #" + fechas.dtpiker1 + "# AND fecha_examen <= #" + fechas.dtpiker2 + "#)",conexion
También te diría (Si hablamos de access), vieses el utilizar la función DCOUNT, es más sencillo.
Un saludo,
fcosapa
#01-01-60# es tratado como fecha.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas