Existem tabelas que controlam períodos de utilização, como aluguéis ou viagens, onde há um campo para a data inicial e outra para a final.
Nestes casos, é muito comum se verificar, ao inserir um novo item, se este coincide com algum já cadastrado. Para isso execute a SQL abaixo adaptada ao seu caso:
select id, dt_hr_saida, dt_hr_chegada from viagem
where dt_hr_chegada > 'dt_hr_saida_novo'
and dt_hr_saida < 'dt_hr_chegada_novo'
Esta SQL irá retornar todos os períodos coincidentes.
Veja que usei o maior e menor, pois as pontas podem coincidir, mas não se cruzar. Se o seu caso não pode nem coincidir então utilize >= e <=.
Se na edição do dado deseja saber se vai bater com outro período execute a SQL abaixo adaptada ao seu caso:
select id, dt_hr_saida, dt_hr_chegada from viagem
where dt_hr_chegada > 'dt_hr_saida_editando'
and dt_hr_saida < 'dt_hr_chegada_editando'
and id <> id_editando
É isso aí....
Nestes casos, é muito comum se verificar, ao inserir um novo item, se este coincide com algum já cadastrado. Para isso execute a SQL abaixo adaptada ao seu caso:
select id, dt_hr_saida, dt_hr_chegada from viagem
where dt_hr_chegada > 'dt_hr_saida_novo'
and dt_hr_saida < 'dt_hr_chegada_novo'
Esta SQL irá retornar todos os períodos coincidentes.
Veja que usei o maior e menor, pois as pontas podem coincidir, mas não se cruzar. Se o seu caso não pode nem coincidir então utilize >= e <=.
Se na edição do dado deseja saber se vai bater com outro período execute a SQL abaixo adaptada ao seu caso:
select id, dt_hr_saida, dt_hr_chegada from viagem
where dt_hr_chegada > 'dt_hr_saida_editando'
and dt_hr_saida < 'dt_hr_chegada_editando'
and id <> id_editando
É isso aí....
Comentários
Postar um comentário