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

Responder a