CONSULTA POR DATA
To mechendo em um programa e a data é gravada no banco da dados firebird no formato varchar. E agora preciso fazer uma consulta por data, mas quando faço a sql.
Da uma mensagem de erro que é conversion error from string, ja tentei mudar o formato, tentei o cdate, cvar e nada adintou, mas se eu fizer
Não da erro mas tambem não acha nada. Alguem tem alguma sugestão que não seja mudar o campo data para date, pois para fazer isto terei que mecher em muitas partes do programa.
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where a.data = " & Format(txtdata.Text, "mm/dd/yyyy")
Da uma mensagem de erro que é conversion error from string, ja tentei mudar o formato, tentei o cdate, cvar e nada adintou, mas se eu fizer
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where a.data = " & "'txtdata.text'"
Não da erro mas tambem não acha nada. Alguem tem alguma sugestão que não seja mudar o campo data para date, pois para fazer isto terei que mecher em muitas partes do programa.
tente assim:
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where cast ('a.data' as date) = '" & Format(txtdata.Text, "mm/dd/yyyy") & "'"
O maior problema é ter o campo data não sendo date ou timestamp. Daàé necessário converter a data (varchar) para data (date) e fazer a comparação entre aspas simples e mm/dd/yyyy.
Espero que funcione.
Flw.
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where cast ('a.data' as date) = '" & Format(txtdata.Text, "mm/dd/yyyy") & "'"
O maior problema é ter o campo data não sendo date ou timestamp. Daàé necessário converter a data (varchar) para data (date) e fazer a comparação entre aspas simples e mm/dd/yyyy.
Espero que funcione.
Flw.
Não funcionou, troquei o campo para date e quando faço.
Agora da o erro conversion error from string"0", algum ja viu este erro?
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where a.data = " & Format(txtdata.Text, "mm/dd/yyyy")
Agora da o erro conversion error from string"0", algum ja viu este erro?
Acho que vc precisa colocar a data entre aspas simples Paulo.
tente assim:
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where a.data = '" & Format(txtdata.Text, "mm/dd/yyyy") & "'"
sql = "select A.id_consulta,a.cod_paciente, B.nome as nomepaciente, a.cod_medico,c.nome as nomemedico,a.data,a.hora,a.ficha from (cad_consultas A left outer join cad_pacientes B on B.id_paciente=A.cod_paciente ) LEFT OUTER JOIN CAD_MEDICOS c ON a.COD_MEDICO=c.id_medico where a.data = '" & Format(txtdata.Text, "mm/dd/yyyy") & "'"
Muito obrigado pela ajuda.
Tópico encerrado , respostas não são mais permitidas