Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

como inserir a data atual em um campo DATE no formato dd/mm/aaaa no oracle


DATE é um tipo embutido no Oracle, que é representado de forma fixa e você não tem controle sobre ele.

Então:

Eu quero inserir [...] como 08/01/2011 12:00:00 AM

O acima é um absurdo. Você não insere uma string, você insere uma data.

O formato é útil apenas quando você deseja:
  • para converter uma string em uma representação interna de data com TO_DATE (máscara de formato:como analisar a string);
  • para converter uma representação interna de data em uma string com TO_CHAR (máscara de formato:como renderizar a data).

Então, basicamente, no seu exemplo, você pega um DATE, converte para STRING com algum formato e converte de volta para DATE com o mesmo formato. Este é um não-op.

Agora, o que seu cliente exibe:isso ocorre porque seu Oracle Client não exibirá campos DATE diretamente e a camada NLS converterá qualquer campo DATE selecionado. Portanto, depende da sua localidade por padrão.

O que você quer é SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual; que executará explicitamente a conversão e retornará uma string.

E quando você quiser inserir uma data em um banco de dados, você pode usar TO_DATE ou literais de data.