segunda-feira, 1 de outubro de 2007

To_Date X To_Timestamp

Tanto no ORACLE quanto no POSTGRES temos a função TO_DATE, só que no postgres ela se comporta de forma diferente. No ORACLE ,To_date converte uma string em data, semelhante ao postgres, a diferença é que no postgres ela só retorna a parte data enquanto que no ORACLE ela traz data e hora.

No Oracle

SQL> alter session set NLS_DATE_FORMAT='dd/mm/yyyy hh24:mi:ss';

Sessão alterada.

SQL> SELECT TO_DATE('01/10/2007') DATA FROM DUAL;

DATA
-------------------
01/10/2007 00:00:00

SQL> SELECT TO_DATE('01/10/2007 13:00:00','DD/MM/YYYY HH24:MI:SS') DATA FROM DUAL;

DATA
-------------------
01/10/2007 13:00:00



No postgres

select TO_date('01/10/2007','DD/MM/YYYY');
select TO_date('01/10/2007 13:00:00','DD/MM/YYYY HH24:MI:SS');

retorna das duas é o mesmo ==> 01/10/2007, não existe a hora

Para exibição da hora existe 2 alternativas

1.) Trocar a função to_date para to_timestamp, opções de máscaras semelhante da to_date
select TO_timestamp('01/10/2007 13:00:00','DD/MM/YYYY HH24:MI:SS');

2.) Criar uma função to_date que internamente chama a to_timestamp.

Aqui no detran adotaremos a primeira opção.

Nenhum comentário:

by TemplatesForYouTFY
SoSuechtig, Burajiru