sql disponivel entre datas horas

Amigos bom dia, estou com uma duvida se estou fazendo correto.
Em dois campos datas hora do banco postgres, eu consigo fazer o betwen entre as duas, porem gostaria de saber se entres os periodos é possível informa que uma hora ainda esta ocupado. pois so ira desocupar a parti da data hora final.
Tipo do dia ‘2014-09-19 08:00:00’ ate ‘2014-09-19 20:00:00’ gostaria de saber se as 12:00 do dia 2014-09-19 existe algum registro

Estou fazendo assim

select
data_hora_inicio,
data_hora_fim
from
servico

where
data_hora_inicio >=‘2014-09-02 08:00:00’ and data_hora_fim <=‘2014-09-20 20:00:00’


Ele me da um resultado, porem gostaria de saber se existe registro as 12 horas como fasso?

Att Arquimedes

Ola Arquimedes…
Não uso postgres mais você já tentou assim


SELECT 
          data_hora_inicio,
          data_hora_fim
FROM
         servico
WHERE
          data_hora_inicio >='2014-09-19 12:00:00' and  data_hora_fim <='2014-09-19 12:00:00' /* com este somente si a hora for exatamente 12:00:00*/



/*ou com este*/

SELECT 
          data_hora_inicio,
          data_hora_fim
FROM
         servico
WHERE
          data_hora_inicio >='2014-09-19 12:00:00' and  data_hora_fim <='2014-09-19 12:59:59' /* com este ira recuperar tudo entre as 12:00 ate as 12:59*/

Amigo obrigado,
Estou querendo digitar uma data hora, e ver se ela se encaixa dentro do intervalo de uma data hora inicial e data hora final, isso sem ela ta lançada.
o que estara lançado no banco é
data_hora_inicio =‘2014-09-02 08:00:00’
data_hora_fim =‘2014-09-20 20:00:00’
eu quero saber se as ‘2014-09-02 12:00:00’ esta entre essas duas data horas?

Att Arquimedes

Ai nesse caso você tem que criar uma tabela de horários tipo em uma clinica, agendamos de 30 em 30 minutos, ai nessa tabela tem todas as horas de 30 em 30 minutos.

Comparamos a tabela de agendamento da consulta com a tabela de horários, ai através da comparação ele mostra o que esta livre na consulta ai é só
atendente selecionar o horário e fazer o agendamento.

Eu encontrei uma solução via php, porem terei que utilizar o sc_sql primeiro pegar o valor e jogar do php.


$data_final=‘2014-09-02 20:00:00’;
$data_inicial=‘2014-09-02 08:00:00’;
$dh_verifica= ‘2014-09-02 12:00:00’;

if ( $data_final > $dh_verifica && $data_inicial < $dh_verifica )
{
sc_alert(“Ja existe um serviço para esse inicio de servico”);
}
else
{
sc_alert(" Não existe um serviço para esse inicio de servico");

}

Mais sera que seria possível apenas utilizando o sql.

Att arquimedes