Conversao de datas para clausula where
Senhores, muito obrigado antecipadamente aqueles que puderem me ajudar.
Estou com o seguinte problema ( pouco conhecimento de SQLServer)
tenho um qry basicamente assim
Reparem com foi truncada essa data, esse exemplo funciona, mas eu preciso complicar o mesmo.
De forma que:
Eu terei de passar duas datas DATA_INI e DATA_FIM sendo que se o user preencher as duas terei de usar um BETWEEN para verificar o result, mas se ele passar somente a primeira data DATA_INI , eu teria de executar a verificacao somente com a data passada.
Seque abaixo uma tentativa minha que nao deu certo, talvez com esse codigo fique mais facil de visualizar o que eu pretendo.
Se algum dos colegas puderem me ajudar, ficarei muito grato.
Estou com o seguinte problema ( pouco conhecimento de SQLServer)
tenho um qry basicamente assim
select * from execucoes e where (cast(floor(cast(E.Data as float)) as datetime) = isnull(:Data, cast(floor(cast(E.Data as float)) as datetime)))
Reparem com foi truncada essa data, esse exemplo funciona, mas eu preciso complicar o mesmo.
De forma que:
Eu terei de passar duas datas DATA_INI e DATA_FIM sendo que se o user preencher as duas terei de usar um BETWEEN para verificar o result, mas se ele passar somente a primeira data DATA_INI , eu teria de executar a verificacao somente com a data passada.
Seque abaixo uma tentativa minha que nao deu certo, talvez com esse codigo fique mais facil de visualizar o que eu pretendo.
select e.idexecucao ,cast(floor(cast(E.Data as float)) as datetime) from execucoes e where ( cast(floor(cast(E.Data as float)) as datetime) between isnull(:DATA_INI, cast(floor(cast(E.Data as float)) as datetime)) and isnull(:DATA_FIM , cast(floor(cast(E.Data as float)) as datetime)) ) or (cast(floor(cast(E.Data as float)) as datetime) = isnull(:DATA_INI, cast(floor(cast(E.Data as float)) as datetime)) and :DATA_FIM is null ) order by e.data
Se algum dos colegas puderem me ajudar, ficarei muito grato.
Josehenrique
Curtidas 0