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

altere o formato de data 'aaaa/mm/dd' para 'mm-dd-aaaa' no Oracle


to_date() pega seu parâmetro de string, combina com o formato que você fornece no segundo parâmetro e constrói um campo de data a partir dele. O campo de data não está usando o formato fornecido no segundo parâmetro - na verdade, ele será armazenado usando alguma representação de dados interna que não tem formato (um número, com toda a probabilidade).

Para apresentar um formato de volta nos resultados de um campo de data, você pode:
  1. Faça com que o cliente que executa a consulta defina os parâmetros NLS (no nível da sessão) para fornecer um formato localizado, com um ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD'; declaração) ou
  2. Use to_char(..., 'YYYY-MM-DD') em torno de seu campo existente para transformar a data novamente em uma string formatada da maneira que você deseja. Onde você substitui ... com sua definição de coluna atual na seleção.

A abordagem #1 já está acontecendo, pois já haverá um conjunto NLS_DATE_FORMAT que está produzindo o formato atual, mas está com um formato que você não quer, então se você pode controlá-lo e alterá-lo lá, você pode fazer isso caminho. Se você não pode e deve ter o formato de uma única forma consistente, então o #2 pode ser o caminho a seguir.