Conversao Float para dataHora

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pc_delphi
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 128
Registrado em: Qui, 29 Mai 2008 6:44 pm
Localização: São Paulo
Tudo posso, nAquel que me fortalece
Filipenses 4:13

Eu preciso transformar uma dada DataHora, que vem em formato float para o formato "dd/mm/yyyy hh24:mi:ss" ou "dd/mm/yyyy". Como faço? É só dividir o float por 1440? ou tem mais coisas?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5018
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Isso depende de como que está sendo gravado esse float.
Eu já vi casos que 1 é equivalente a 1/1/1980
Ou outros casos que 1 é o mesmo que 1/1/1950

Daí vai depender de como que está aí o padrão.
pc_delphi
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 128
Registrado em: Qui, 29 Mai 2008 6:44 pm
Localização: São Paulo
Tudo posso, nAquel que me fortalece
Filipenses 4:13

Sim, mas como eu faço essa conversão? Qual a fórmula para transformar float em data?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5018
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

É o que eu disse: DEPENDE DA REGRA!!!

exemplo:
Digamos que 1 é o mesmo que 01-jan-1950.
Então o que é 8500 ?

Selecionar tudo

SQL> select 8500 + to_date('01-jan-1950') from dual;

8500+TO_D
---------
10-APR-73

SQL> 
O número 8500 em float é 10 de abril de 1973.

Quanto é dia de HOJE em float ?

Selecionar tudo

SQL> select to_date('12-FEB-09') - to_date('01-jan-1950') flo from dual;

       FLO
----------
     21592
Hoje é 21592 em float.


Vamos fazer a prova real:

Selecionar tudo

SQL> select 21592 + to_date('01-jan-1950') from dual;

21592+TO_
---------
12-FEB-09

SQL> 
Então, como que disse antes, tudo isso estamos considerando que o dia 1 é janeiro de 1950... ISSO NEM SEMPRE É ASSIM ! Antes de mais nada, você tem que saber a regra que ta sendo usada.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes