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
>
> 
>



-- 

[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>

Responder a