A partir de dtsaida que é a data da venda. Em 05/02/2018 17:19, "Tércio Costa [email protected] [oracle_br]" < [email protected]> escreveu:
> > > A data de garantia começa a contar a partir de quando? > > Em 5 de fevereiro de 2018 15:42, Eduardo Perdomo [email protected] > [oracle_br] <[email protected]> escreveu: > >> >> >> Conseguem ver essa imagem : https://ibb.co/eZ1Y1H >> >> 2018-02-05 15:57 GMT-02:00 [email protected] [oracle_br] < >> [email protected]>: >> >>> >>> >>> Colega, ** PLEASE ** explica pra gente : essa tal coluna p.prazogarantia >>> é um Número, ou uma Data, ou o que ?? E SE for um Número, ele representa >>> qtdade de DIAS, de MESES, de ANOS, ou o que ??? E essa tal outra coluna >>> f.dtsaida , é REALMENTE uma coluna com datatype DATE ??? >>> Isso é *** CRÍTICO *** a gente saber, pois no RDBMS Oracle SYSDATE >>> retorna uma data , e uma substração ou Adição entre DATAs retorna um número >>> FRACIONÁRIO que é o número de dias MAIS a fração de um dia decorrido... >>> >>> ==> SE REALMENTE essa coluna prazogarantia for o NÚMERO DE DIAS da >>> garantia, contados a partir da coluna dtsaida que REALMENTE é uma DATA e >>> não algum tipo de string, MUITO PROVAVELMENTE teu erro tá no FATO de que >>> dtsaida é uma DATA DO PASSADO, e (ÓBVIO!!!) data de hoje - data do passado >>> *** NUNCA ** vai dar negativo, exemplo : >>> >>> => hoje é dia 05/02/2018 : >>> >>> scott@BD_TESTE:SQL>select to_char(sysdate, 'dd/mm/yyyy') from dual; >>> >>> TO_CHAR(SY >>> ---------- >>> 05/02/2018 >>> >>> scott@BD_TESTE:SQL> >>> >>> ==> crio a tabela e insiro uns dadinhos de testes : >>> >>> scott@BD_TESTE:SQL>create table TAB_TESTE_GARANTIA ( >>> 2 CODPROD number, >>> 3 DTSAIDA date, >>> 4 PRAZOGARANTIA number ); >>> >>> Tabela criada. >>> >>> ==> Insiro dois registros, um dentro e outro fora da qtdade de dias >>> especificada : >>> >>> scott@BD_TESTE:SQL>insert into TAB_TESTE_GARANTIA values(1, >>> TO_DATE('05/01/2018', 'dd/mm/yyyy'), 90); >>> >>> 1 linha criada. >>> >>> scott@BD_TESTE:SQL>insert into TAB_TESTE_GARANTIA values(2, >>> TO_DATE('05/01/2015', 'dd/mm/yyyy'), 100); >>> >>> 1 linha criada. >>> >>> ==> Taí o resultado : >>> >>> scott@BD_TESTE:SQL>select codprod, dtsaida, prazogarantia, sysdate - >>> dtsaida qtd_dias from TAB_TESTE_GARANTIA; >>> >>> CODPROD DTSAIDA PRAZOGARANTIA QTD_DIAS >>> --------- ------------------- ------------- --------- >>> 1 05/01/2018 00:00:00 90 31,661065 >>> 2 05/01/2015 00:00:00 100 1127,6611 >>> >>> scott@BD_TESTE:SQL> >>> >>> ==> Vc estaria CERTO em perguntar por negativo apenas se vc estivesse >>> fazendo data do passado menos data de hoje : >>> >>> scott@BD_TESTE:SQL>select codprod, dtsaida, prazogarantia, dtsaida - >>> sysdate qtd_dias from TAB_TESTE_GARANTIA; >>> >>> CODPROD DTSAIDA PRAZOGARANTIA QTD_DIAS >>> --------- ------------------- ------------- --------- >>> 1 05/01/2018 00:00:00 90 -31,66343 >>> 2 05/01/2015 00:00:00 100 -1127,663 >>> >>> scott@BD_TESTE:SQL> >>> >>> []s >>> >>> Chiappa >>> >> >> >> >> -- >> >> Eduardo Perdomo >> Consultor de Implantação >> Grupo PC Sistemas - www.grupopc.com.br >> (21) 6845-8592 >> [email protected] >> [email protected] >> Blog: eduardo.perdomo..nom.br <http://eduardo.perdomo.nom.br> >> >> > > > -- > > [image: photo] > *Tércio Costa, * > *Oracle Certified SQL Expert, ACE Associate* > Analista de Dados, Unimed João Pessoa > m:+55 83 9 9915 9168 <+55+83+9915+9168> | w:https://oraclepress. > wordpress.com/ <http://oraclepress.wordpress.com/> | > <http://plus.google.com/+TércioCosta> > <http://br.linkedin.com/in/terciocosta> > > >
