Senhores,
Estou com uma dúvida se estou no caminho certo para somar as horas de
um sistema que estou dando manutenção.
Tenho esta estrutura:
CREATE TABLE tempos
(
usuario_cpf character varying(11) NOT NULL,
projeto_nome character varying NOT NULL,
projeto_datainicial date NOT NULL,
tempo_entrada timestamp without time zone NOT NULL,
tempo_saida timestamp without time zone,
comentario text,
tipo_tempo character varying,
CONSTRAINT pk_tempo PRIMARY KEY (usuario_cpf , projeto_nome ,
projeto_datainicial , tempo_entrada ),
CONSTRAINT "FK_tempo_tipo-tempo" FOREIGN KEY (tipo_tempo)
REFERENCES tipo_tempo (nome) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "FK_tempo_usuario" FOREIGN KEY (usuario_cpf)
REFERENCES usuarios (cpf) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
E estou utilizando a query abaixo, mas não sei se esta correto. A
pessoa pode entrar com um ou mais intervalo de tempo trabalhado no
mesmo dia e tenho
que retornar a quantidade de horas mesmo se por exemplo a pessoa
começar às 23:00 e parar às 06:00 do próximo dia.
Será que é por este caminho mesmo?
SELECT SUM(AGE(tempo_saida, tempo_entrada))
FROM tempos
WHERE EXTRACT(DAY FROM tempo_entrada) = EXTRACT(DAY FROM tempo_saida)
EXTRACT(MONTH FROM tempo_entrada) = EXTRACT(MONTH FROM tempo_saida)
EXTRACT(YEAR FROM tempo_entrada) = EXTRACT(YEAR FROM tempo_saida)
AND EXTRACT(YEAR FROM tempo_entrada) = 2012
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral