Ir para conteúdo
asacap1000

Calculo de datas e horas

Recommended Posts

Galera preciso de uma ajuda, não sei mais nem como procurar a cabeça está dando nó kkkk.

Tenho projeto que estará controlando o tempo de acesso no estabelecimento impondo um limite de 100 minutos.

Dentro do mesmo dia estou conseguindo realizar os calculos normais, porém se o usuário entrar 23:00 ele terá que sair no máximo às 00:40.

O horário eu consegui montar conforme o select abaixo a data mantém a mesma da entrada.

select aces.seqreg SEQUENCIA,
       aces.diracc SENTIDO,
       
	   aces.horacc MINUTOS, --acesso em minutos 
	   (aces.horacc + 100) LIMITE, --limite de acesso foi adicionado mais 100 minutos

	   CONVERT(varchar(2), Day(aces.datacc)) + '/' +
       CONVERT(varchar(2), MONTH(aces.datacc)) + '/' +
       CONVERT(varchar(4), Year(aces.datacc)) + '  ' +
       right( '00' + cast(aces.horacc / 60 as varchar), 2) + ':' +
       right( '00' + cast(aces.horacc - ((aces.horacc / 60) * 60) as varchar), 2 ) AS HORA,--data e hora  de entrada

	CONVERT(varchar(2), Day(aces.datacc)) + '/' +
    CONVERT(varchar(2), MONTH(aces.datacc)) + '/' +
    CONVERT(varchar(4), Year(aces.datacc)) + '  ' +
    right( '00' + cast( ((aces.horacc + 100)%1440)/60 as varchar), 2) + ':' +
    right( '00' + cast(((aces.horacc + 100)%1440)%60 as varchar), 2 ) 'SAIDA', --data e hora que deve sair
	
	Convert(Char(5),GetDate(),114) ATUAL
   
  from kansas.kansas.r070ara aces
  LEFT JOIN kansas.kansas.r090mvi mv
    on aces.numcra = mv.numcra
   and aces.numdoc = mv.numdoc
 where CONVERT(DATETIME, CONVERT(NVARCHAR(10), aces.datacc, 103), 103) >=
       CONVERT(DATETIME, '29/09/2018', 103)
   and CONVERT(DATETIME, CONVERT(VARCHAR(10), aces.datacc, 103), 103) <=
       CONVERT(DATETIME, '29/09/2018', 103)
   and (aces.coddsp like '1')
   and aces.numdoc = '325605397'
 order by aces.seqreg, aces.nompes, aces.coddsp

O problema está nesta parte do select:

 

CONVERT(varchar(2), Day(aces.datacc)) + '/' +
    CONVERT(varchar(2), MONTH(aces.datacc)) + '/' +
    CONVERT(varchar(4), Year(aces.datacc)) + '  ' +
    right( '00' + cast( ((aces.horacc + 100)%1440)/60 as varchar), 2) + ':' +
    right( '00' + cast(((aces.horacc + 100)%1440)%60 as varchar), 2 ) 'SAIDA', --data e hora que deve sair

A parte de data ele não traz a data seguinte na imagem abaixo a saída deveria ser 30/09/2018 01:27

 

image.png.99e360d4568aa033ae2a5b1a3396e321.png

 

Alguém poderia me dar uma força tenho que entregar essa semana este projeto no trabalho e está muito punk a bagaça...

 

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 Fabiana Gomes
      Pessoal, boa noite
       
      Preciso de um help!!
       
      Tenho a tabela ENDERECO e na coluna LOUGRADOURO (40) preciso diminuir alguns endereços para 30 caracteres.
      Basicamente preciso cortar a partir da casa 30.
       
      Alguem pode me ajudar?
    • Por Lucast
      Boa tarde galera,
       
      Estou tentando fazer a soma de duas colunas no SQL e queria que ela me retornasse o valor separado em uma coluna a parte, podem me ajudar?
       
      Isso é o que estou fazendo
       
      SELECT MONTH(workOrderDate) AS MES, (SUM(CASE WHEN WorkType = '02' AND workOrderDescription = 'preventiva' THEN 1.0 ELSE 0 END)) AS preventiva, (SUM(CASE WHEN workOrderDescription = 'CORRETIVA' THEN 1 ELSE 0 END)) AS corretivas FROM WorkOrder WHERE YEAR(workOrderDate) = 2018 AND lastUpdateData IS NOT NULL GROUP BY MONTH(workOrderDate);  
      Esse resultado me retorna esses valores:
       
      https://imgur.com/5XqbmFX
       
      Preciso que ele me retorne uma coluna ao lado informando a soma de ambas as colunas.
       
      Alguém consegue me ajudar?
       
       
    • Por eduardohaag
      Boa noite pessoal,
      Esbarrei em um novo problema com consultas no meu sistema.
       
      Tenho um formulário no sistema que deverá apresentar todos os materiais utilizados em uma determinada Venda e seus respectivos estoques obtidos através da soma das entradas e saidas do estoque.
      Para isso devo buscar os dados em 3 tabelas do banco de dados sendo elas VendasProdutos, Composicao,  Materiais e Estoque

       
      Eis que surge meu problema, como posso ter vários produtos na venda e alguns produtos usam os mesmos materiais, a consulta está retornando com os materiais duplicados, quando o que eu gostaria era que somasse de acordo com cada material.
       
      A query que estou usando para teste no acesso é a seguinte:
      SELECT Composicao.IdMaterial, materiais.descricao, Sum(Estoque.Quantidade) AS Estoque, [VendasProdutos]![Quantidade]*[Composicao]![Quantidade] AS TotalUtilizado FROM (VendasProdutos LEFT JOIN (materiais RIGHT JOIN Composicao ON materiais.ID = Composicao.IdMaterial) ON VendasProdutos.IdProduto = Composicao.IdProduto) LEFT JOIN Estoque ON materiais.ID = Estoque.IdMaterial GROUP BY Composicao.IdMaterial, materiais.descricao, [VendasProdutos]![Quantidade]*[Composicao]![Quantidade], VendasProdutos.IdVenda HAVING (((VendasProdutos.IdVenda)=1));  
      A consulta está retornando os dados dessa forma:

       
      E eu gostaria de que agrupasse por ex:
       
      ID                Descricao                Estoque               TotalUtilizado
      1                 Capa Agenda             34                             10
      2                 Miolo Agenda            27                              5
       
      Alguem Sabe como posso fazer isso?
      Desulpem pelo post gigante, mas não sabia como explicar melhor.
    • Por Lucast
      Olá galera estou fazendo um select em duas tabelas porém preciso que o valor delas seja subtraido porém eu ja tentei e não consegui, deixarei o codigo abaixo das querys que preciso fazer a subtração
       
      SELECT COUNT(*) AS MES  
×

Informação importante

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