Ir para conteúdo

Recommended Posts

Boa tarde.

Tenho um agendamento para inserir. Mas antes de inserir, preciso validar para ver se não há agendamento no intervalo selecionado

 

Hoje estou fazendo 2 campos para data inicial e final e 2 campos para horario inicial e final, mas não estou conseguindo.

Se puder me passar se a melhor forma e o datetime e como fazer essa consulta no banco.

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para quem for efetuar a pesquisa.

É mais simples guardar os valores em datetime e efetuar a pesquisa da seguinte forma:

 

SELECT * FROM `agenda` WHERE (
    (`start` BETWEEN '2018-09-15 10:00:00' AND '2018-09-15 11:00:00')
    OR (`end` BETWEEN '2018-09-15 10:00:00' AND '2018-09-15 11:00:00')
    OR ('2018-09-15 10:00:00' BETWEEN `start` AND `end` )
    OR ('2018-09-15 11:00:00' BETWEEN `start` AND `end` )
)

[resolvido]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por asacap1000
      Salve Galera, estou quase finalizando um relatório porém travei em um campo.
      Este relatório consiste em subtrair hora de entrada e saída, trazer em dias horas e minutos de um período.
      Depois preciso calcular a média destes resultados.
      eu barrei na parte de dias não vem a informação correta.
       
      Segue select se alguem puder me dar uma força.
       
      SELECT io.id_in_out, IOP.DOCUMENT,IO.TIME_IN entrada, IO.TIME_RELEASE_PP saida, LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) /24 )), 2, '0') || ':' || LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) * 24 )), 2, '0') || ':' || LPAD(TRUNC(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600) / 60), 2, '0') || ':' || LPAD(TRUNC(MOD(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600), 60)), 2, '0') TEMPO FROM DESMEMBR DD, IN_OUT_POS IOP, IN_OUT IO, SPEDITEURE S, VEHICLE V, DRIVER D WHERE DD.TYP_PROCESS = 'DINACI' AND 'DI' = IOP.TYP_DOCUMENT AND DD.NR_DI = IOP.DOCUMENT AND IOP.ID_IN_OUT = IO.ID_IN_OUT AND IO.ART_IN_OUT IN ('CA', 'CC', 'CCE') AND IO.STAT <> '80' AND S.ID_SPEDITEUR = IO.ID_SPEDITEUR AND V.ID_VEHICLE = IO.ID_VEHICLE AND IO.TIME_IN >= TO_DATE('01/12/2018', 'dd/mm/yyyy') AND IO.TIME_IN <= TO_DATE('31/12/2018', 'dd/mm/yyyy') AND D.ID_DRIVER = IO.ID_DRIVER O resultado acima está vindo assim:
       
      1    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
      2    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
       
      Depois de acertar isso preciso realizar a média que a principio eu utilizaria o AVG mas dá erro.
       
      Agradeço quem puder me ajudar.
    • Por Nioshi
      Bom dia pessoal, tenho o seguinte problema, meu back-end com PHP precisa fazer um select no banco de dados SQL server, e uma das condições para pegar o dado é a data, até ai sem problemas, se eu utilizar:
      $dataInicio = $dataInicio->format('d/m/Y'); ele pega o dado sem problema algum do meu banco, porem quando foi tentado implementar em outro SQL Server, ele retorna o seguinte erro: 
      SQLSTATE [22007, 242]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]A conversão de um tipo de dados nvarchar em um tipo de dados datetime resultou em um valor fora do intervalo. ou seja, eu acho que o problema é a forma que o sql foi instalado(inglês,português), enfim, o que eu realmente preciso e se tem como eu saber o dateformat do SQL server, antes de setar a variável da data para consulta.
       
      no SQL do cliente se colocar o seguinte código:
      $dataInicio = $dataInicio->format('m/d/y'); ele também funciona sem problema algum, o que eu preciso saber é quando utilizar qual.
       
      Obrigado desde já.
    • Por danielambrosio
      Possível alterar essa função SESSION time que contabiliza por minuto no dados do balance  alterar para contabilizar no balance apenas uma vez no mês ?
       
    • Por danielambrosio
      Possível alterar essa função SESSION time que contabiliza por minuto no dados do balance  alterar para contabilizar no balance apenas uma vez no mês ?
       
    • Por brunonative
      Boa noite.
       
      Estou tendo um problema em um sistema e não consigo visualizar uma solução.
      Vamos lá ..
       
      Existe a tabela AGENDAMENTO com as seguintes colunas:  ID | EMAIL IMEDIATO | PRÓXIMO EMAIL | INTERVALO

      EMAIL IMEDIATO e PRÓXIMO EMAIL faz uma consulta na tabela EMAILS onde tem textos cadastrados.
       
      Eu quero que toda vez que for cadastrado um AGENDAMENTO, seja feito o envio na hora do EMAIL IMEDIATO e que o PRÓXIMO EMAIL seja enviado de acordo com o INTERVALO cadastrado.
      O INTERVALO ta sendo cadastrado com  número de 1 a 48, que é o número de horas para o intervalo.
       
      Eu não to conseguindo visualizar uma solução para isso, podem me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.