Ir para conteúdo
Fórum Script Brasil
  • 0

Select Datepart ?


Rafaeljuni0.ti

Pergunta

Boa noite pessoal,,

Estou com a seguinte situação... tenho um tabela para contabilizar as horas de manutenção em um equipamento no dia,mes, ano e etc..,

Digamos que tenho uma tabela com os seguinte campos:

TMP_ID => id da tabela

TMP_DT_INICIO => inicio da manutenção

TMP_DT_FIM=> termino da manutenção

TMP_EQUIPAMENTO => equipamento manutenido

* uma manutencao nunca pode ocorrer duas vezes ao menos tempo ou seja se um equipamento X estiver na tabela que ele teve retido(em manuntencao) de 10/07/2012 a 18/07/2012 não havera outro registro desse mesmo equipamento entre essa data ..a proxima manutencao devera ser maio que a data de liberacao da ultima manuntecaoq ue esse equipamento fez.

* mas esse equipamento pode entrar e sair da ofcina N vezes ou seja ele pode ficar retido entre 10/07 a 18/07 e depois ficar retido do dia 20/07 a 23/07 por exemplo.

então o que preciso é contruir uma consulta que me diz quantas horas por dia esse equipamento ficou retido dia por dia ...usando o datediff consigo pegar a diferecnas entre o inicio e fim da manutencao e isso já faco em um outra situacao mas aqui preciso saber quanta horas ele ficou retido cada dia no mes atuas ou seja

Digamos que um EQU_NOME ficou retido tres vezes no mes atual (Julho)

do dia 13/07 as 7:00 ate 15/07 as 11:30

do dia 16/07 10:00 ate 18/07 as 11:00

precisaria que ele me retornasse que no dia 01/07 ,02/07 ....ate 12/07 teve 00:00 horas de manuntecao já no dia 13/07 teve 17:00 ,14/07 teve 24:00 e por ai vai

ou seja uma coluna para cada dia do meu atual..sempre do mes atual as horas de manuntencao daquele determinado equipamento por dia ..se ele ficou parada uma vez mas foi 5 dias de manutencao preciso mostrar que dia tal teve tantas horas e por ai vai.

Agradeco sempre a atencao do Forum.

Obrigado

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Bom dia Rafael,

Acho que entendi o seu problema. Então ai vai uma pergunta..... rs.

- Onde você utilizará os dados de dias que o equipamento ficou com 0:00 hs em manutenção?

Por que estou perguntando isto: no seu exemplo, se o script estivesse funcionando, no mês de julho iriam ter 31 linhas de retorno. Uma linha para cada dia. Mas os dias que o equipamento ficou em manutenção foram apenas 2 dias. Então o sql processaria 31 linhas de resultado, para trazer 29 linhas com zero e 2 linhas com resultados que interessa.

Se fosse implementar, faria o "trabalho pesado" no código fonte, e deixaria a consulta no Banco apenas retornar os dis que houveram realmente a manutenção. Os outros dias, o próprio código colocaria zero.

Para separar as datas por hora (como no intervalo de 13/07 a 15/07), terá que testar se a data de início é igual a data de fim. Se for, irá calcular com as horas, senão, terá que calcular as horas até 23:59 hs + 1 hora. Após o calculo, somar 1 dia na data de inicio e realizar novamente o teste.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...