Em 18/04/12, jorge sanfelice<[email protected]> escreveu: > Ola Amigos, > > Problema resolvido do seguinte modo: > > SELECT > (deldatapacote - (deldt_intervalo|| ' SECOND')::interval ) as dt_entrada, > from delta > where ...; > > > Obrigado > > > Em 18 de abril de 2012 11:28, Osvaldo Kussama > <[email protected]>escreveu: > >> Em 18/04/12, Osvaldo Kussama<[email protected]> escreveu: >> > Em 18/04/12, jorge sanfelice<[email protected]> escreveu: >> >> Ola Pessoal, >> >> Preciso de uma ajuda com as seguintes query: >> >> >> >> Query 1: >> >> >> >> SELECT veiculo,deldatapacote,deldt_intervalo, >> >> (deldatapacote - interval 'deldt_intervalo sec') as inicio >> >> from delta where deldatapacote > '2012-04-10 00:00:00' and >> >> deldatapacote >> >> < >> >> '2012-04-17 23:59:59' and delveioid = 475435 and delmotooid = 1111; >> >> ERRO: sintaxe de entrada é inválida para tipo interval: >> "deldt_intervalo >> >> sec" >> >> LINHA 1: ...pacote,deldt_intervalo, (deldatapacote - interval >> >> 'deldt_int... >> >> >> >> >> >> Query 2: >> >> SELECT extract(EPOCH FROM TIMESTAMP WITH TIME ZONE deldatapacote) as >> >> seg >> >> from delta >> >> where deldatapacote > '2012-04-01 00:00:00' and deldatapacote < >> >> '2012-04-05 >> >> 23:59:59' >> >> and delveioid = 521054 and delmotooid =148 limit 2; >> >> >> >> ERRO: erro de sintaxe em ou próximo a "deldatapacote" >> >> LINE 1: ...ELECT extract(EPOCH FROM TIMESTAMP WITH TIME ZONE >> >> deldatapac... >> >> >> >> >> >> QUERY 1: Eu preciso executar uma query que pegue uma coluna timestamp >> da >> >> tabela e subtraia dessa data os segundos referentes a outa coluna da >> >> tabela. Essa conversao precisa ser feita no SQL mesmo. >> >> >> >> QUERY 2: Extrair o valor em segundos de uma coluna timestamp da query. >> >> >> >> Teoricamente os comandos estao certo, porem, estou cometendo um erro de >> >> sintaxe que nao consigo identificar. >> >> >> >> Alguem poderia me ajudar? >> >> >> >> Obrigado. >> >> >> > >> > Supondo que deldt_intervalo seja uma variável contendo a quantidade de >> > segundos, use: >> > >> > (deldatapacote - deldt_intervalo * interval '1 sec') as inicio >> > >> >> >> >> Corrigindo: >> >> (deldatapacote - deldt_intervalo * interval '1 second') as inicio >>
Você não informou qual versão do PostgreSQL está utilizando nem os tipos dos dados envolvidos. Dependendo da versão e dos tipos de dados sua solução pode apresentar erro. Veja: "E.43.2. Migration to Version 8.3" em: http://www.postgresql.org/docs/current/interactive/release-8-3.html Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
