Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera é o seguinte,
tenho filtro antes do montar meu select, tenho três campos no filtro: cod_tipo_item_despesa, data_inicio e data_fim. só que caso a data não tenha sido informada, minha consulta retorna falso, segue sql:
select...
where desp.cod_tipo_item_despesa like :cod_tipo_item_despesa
and DATE_FORMAT(desp.data_despesa,'%d/%m/%Y') BETWEEN :data_inicio AND :data_fim
Thanks.
>
3 minutos atrás, Motta disse:
Qual data não foi informada ?
Um valor não informado (null) sempre retorna false em uma pesquisa.
nenhuma das duas, nem data_inicio nem data_fim(por padrão quando não é informado é enviado "1969-12-31", tentei tratar substituindo por '%' mas não me retornou false na pesquisa), no caso seria informado apenas o "cod_tipo_item_despesa".
Ponha uma critica não permitindo data nula na pesquisa
>
6 horas atrás, Motta disse:
Ponha uma critica não permitindo data nula na pesquisa
Mas o problema é que ela pode ou não ser informada, não é obrigatório
Tente com coalesce
select...
where desp.cod_tipo_item_despesa like :cod_tipo_item_despesa
and DATE_FORMAT(desp.data_despesa,'%d/%m/%Y')
BETWEEN COALESCE(:data_inicio,MAKEDATE(2010,1)) and
COALESCE(:data_fim,CURDATE())
vide
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_curdate
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_makedate
Nota , não uso Mysql pode ter algum erro de síntaxe nisto mas a ideia básica e tratar o valor nulo.
>
5 horas atrás, Motta disse:
Tente com coalesce
select...
where desp.cod_tipo_item_despesa like :cod_tipo_item_despesa
and DATE_FORMAT(desp.data_despesa,'%d/%m/%Y')
BETWEEN COALESCE(:data_inicio,MAKEDATE(2010,1)) and
COALESCE(:data_fim,CURDATE())
vide
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_curdate
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_makedate
Nota , não uso Mysql pode ter algum erro de síntaxe nisto mas a ideia básica e tratar o valor nulo.
legal, já havia tentado com coalesce, pelo que entendi está "amarrando" os intervalos... vou tetar aqui, Valeu.
Qual data não foi informada ?
Um valor não informado (null) sempre retorna false em uma pesquisa.