Estou tendo problemas para alterar e excluir registro em um formulario que em sua chave primaria é formado por um campo DATA e 2 campos interiro (DATA, PERIODO, MATRICULA)
Ao ao incluir o SC roda uma SQL (SELECT COUNT(*) FROM ADISPOSICAO WHERE ((convert(char(23),Dia,121) < ‘2009-06-30 00:00:00.000’) OR (convert(char(23),Dia,121) < ‘2009-06-30 00:00:00.000’ AND convert(char(23),Dia,121) = ‘2009-06-30 00:00:00.000’ AND Periodo < 1) OR (convert(char(23),Dia,121) < ‘2009-06-30 00:00:00.000’ AND convert(char(23),Dia,121) = ‘2009-06-30 00:00:00.000’ AND Periodo < 1 AND convert(char(23),Dia,121) = ‘2009-06-30 00:00:00.000’ AND Periodo = 1 AND Matricula < 1110)) AND (matricula = 1110 and ((dia = (select top 1 dia from parametros) and periodo > (select top 1 parede from parametros)) or (dia > (select top 1 dia from parametros) ))) " para verificar a existencia da chave na clausula WHERE veja que o SC convert o tipo de campo (convert(char(23),Dia,121) < ‘2009-06-30 00:00:00.000’) para char(23) e colocar a data no formato ‘2009-06-30 00:00:00.000’…mas quando se tenta alterar ou excluir um registro o SC roda a mesma SQL porem na conversar do campo DATA ele coloca no foramato ‘2009-06-30 00:00:00’ SEM o ".000), sendo assim
o retorno é 0 registro.
Erro do SC
AO INSERIT : (convert(char(23),Dia,121) < ‘2009-06-30 00:00:00.000’)
AO ALTERAR : (convert(char(23),Dia,121) < ‘2009-06-30 00:00:00’)
solucao : se colocar na data o final “.000” ou convert(varcher(19)…
se alguem passou pelo mesmo problema e resolver …
peco ajuda !