Ir para conteúdo
Fórum Script Brasil

Brenno

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre Brenno

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Brenno's Achievements

0

Reputação

  1. Brenno

    Postgre

    Ola, por padrão seria interessante você usar formato americano, porém isso detende de usa necessidade, o formato que você manipula pela sua aplicação, segue um exemplo. SELECT PESSOA.MATRICULA, PESSOA.NOME, PONTOS.DATADIA FROM PESSOA INNER JOIN PONTOS ON PESSOA.MATRICULA = PONTOS.MATRICULA WHERE CAST(datadia AS Date) Between '2019-03-08' AND '2019-03-08' Quando o branco retorna o valor, data no caso 2019-03-08, em sua aplicação você pode formata 08/03/2019, esse caso que mostrei esta usando datadia timestamp, 2019-03-08 12:00:00. Espero que ajude :)
  2. Douglas Carlos só tenho que agradecer pela ajuda, você fenomenal. Tenho que estuda para entender, vi que está usando coalesce uma função, o meu nível de conhecimento e muito a baixo (rsrsrs). Tinha feito da seguinte forma a baixo, porém essa sua solução e fantástica, vou usar. CASO 1 SELECT PESSOA.MATRICULA, PESSOA.NOME, PONTOS.DATADIA FROM PESSOA INNER JOIN PONTOS ON PESSOA.MATRICULA = PONTOS.MATRICULA AND PESSOA.MATRICULA = 1010 WHERE CAST(datadia AS Date) Between '2019-03-26' AND '2019-03-26' 1010;"ASIS DE OLIVEIRA";"2019-03-26 12:00:33.096" 1010;"ASIS DE OLIVEIRA";"2019-03-26 15:00:40.113" 1010;"ASIS DE OLIVEIRA";"2019-03-26 16:05:47.489" 1010;"ASIS DE OLIVEIRA";"2019-03-26 18:00:00.265" Pego esses valores coloco em variável e realizo os cálculos, essa situação, a pessoa teve seu dia trabalho de 4:55, sabendo que essa pessoa trabalha 6:00 por dia, 12:00 as 18:00, o calulo e feito usando somente horas e minutos. No dia normal de trabalho a pessoa tem 2 registro, porém pode ter mais ou somente um. Tem momento que a pessoa esquece de registar o ponto, porém pode ser justificado manualmente pelo gesto responsável. CASO 2 SELECT PESSOA.MATRICULA, PESSOA.NOME, PONTOS.DATADIA FROM PESSOA INNER JOIN PONTOS ON PESSOA.MATRICULA = PONTOS.MATRICULA AND PESSOA.MATRICULA = 1212 WHERE CAST(datadia AS Date) Between '2019-03-26' AND '2019-03-26' 1212;"RONALDO OLIVEIRA";"2019-03-26 12:00:33.096" 1212;"RONALDO OLIVEIRA";"2019-03-26 15:00:40.113" 1212;"RONALDO OLIVEIRA";"2019-03-26 16:00:47.489" No caso 2, e pessoa esqueceu de registar o ponto de saída, as 18:00 no caso. CASO 3 SELECT PESSOA.MATRICULA, PESSOA.NOME, PONTOS.DATADIA FROM PESSOA INNER JOIN PONTOS ON PESSOA.MATRICULA = PONTOS.MATRICULA AND PESSOA.MATRICULA = 1212 WHERE CAST(datadia AS Date) Between '2019-03-01' AND '2019-03-30' 1212;"RONALDO OLIVEIRA";"2019-03-01 12:00:33.096" 1212;"RONALDO OLIVEIRA";"2019-03-01 18:00:40.113" 1212;"RONALDO OLIVEIRA";"2019-03-02 12:00:47.489" 1212;"RONALDO OLIVEIRA";"2019-03-02 18:00:47.489" 1212;"RONALDO OLIVEIRA";"2019-03-04 12:00:47.489" 1212;"RONALDO OLIVEIRA";"2019-03-04 12:00:47.489" 1212;"RONALDO OLIVEIRA";"2019-03-04 18:00:47.489" 1212;"RONALDO OLIVEIRA";"2019-03-05 12:00:47.489" 1212;"RONALDO OLIVEIRA";"2019-03-05 18:00:47.489" ….. No caso 3 onde a pessoa não registrou o ponto de saída, somente de entrada. Dentro dessa pesquisa e possível tira a batida ímpares? Imagem somente para ilustrar a ideia. Desde já agradeço pela ajuda e atenção.
  3. Ola, Estou com duvida para realizar a seguinte tarefa, ou não sei! desculpe minha ignorância. Tenho uma tabela chamada ponto com chave composta, atributo matricula e datadia, do tipo TIMESTAMP. No dois exemplo abaixo a pessoa entra e sai da empresa, dentro de sua jornada de trabalho, sendo que contem duas jornadas de trabalho 08:00 as 12:00 é 12 :00 as 18:00. No exemplo 1, a matricula 1212 entrou para sua jornada no horário normal 12:00, porem teve que sair para resolver um problema particular saiu as 15:00, logo voltou as 16:00 é esqueceu de bater o ponto de sair da empresa, que seria 18:00. No exemplo 2, a matricula 1313 a pessoa fez sua jornada normal de 08:00 as 12:00 Tenho que fazer um calcular para sabe se esta com horas positivas ou negativas. segue abaixo a table para melhor entendimento. CREATE TABLE pontos ( matricula integer NOT NULL, datadia timestamp without time zone NOT NULL, CONSTRAINT chave_primaria_composta PRIMARY KEY (matricula, datadia), CONSTRAINT chave_primaria FOREIGN KEY (matricula) REFERENCES pessoa (matricula) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) Exemplo 1 Matricula Data dia 1212 2019-03-08 12:00:00 1212 2019-03-08 15:00:00 1212 2019-03-08 16:00:00 soma: Horas trabalhadas -> Exemplo 2 Matricula Data dia 1313 2019-03-08 08:00:00 1313 2019-03-08 12:00:00 soma: Horas trabalhadas -> 04:00:00 Obrigado pela atenção e ajuda.
×
×
  • Criar Novo...