Este tutorial mostrará como usar a função to_date para converter uma determinada string de entrada em um tipo de dados de data.
Função Orale to_date()
A função to_date() no Oracle permite que você converta uma determinada cadeia de caracteres de literal de data em um tipo de data.
A sintaxe da função:
TO_DATE(char [, fmt [, 'nlsparam' ] ])
A função aceita três argumentos principais:
- O primeiro argumento é o char, que define a string de data de entrada. O valor de entrada pode ser CHAR, VARCHAR2, NCHAR ou NVARCHAR2.
- fmt – O segundo parâmetro é fmt. Este parâmetro define o formato do modelo de data e hora do valor de entrada. Você pode ignorar este parâmetro se o valor de entrada seguir o formato padrão de DD-MON-YY, por exemplo, 01-JAN-2022.
Se o formato for Julian, representado como J, o valor de entrada deverá ser um tipo inteiro.
O valor de entrada pode ser englobado nos seguintes formatos:
- nlsparam – Por fim, o parâmetro nlsparam é usado para especificar o idioma para dados e mês na string. O formato é NLS_DATE_FORMAT = idioma. O Oracle usará como padrão o idioma padrão da sua sessão.
Exemplo de uso da função
Veja a seguir exemplos da função to_date no banco de dados Oracle:
Exemplo 1 - Conversão Básica
O exemplo abaixo demonstra como usar a função to_date para converter uma determinada cadeia de caracteres em uma data.
select to_date('10 de janeiro de 2023', 'D do mês, AAAA')de dual;
Nesse caso, convertemos a string de data fornecida em um tipo de data usando o formato Mês dd, AAAA.
O valor resultante é mostrado:
TO_DATE('JANUARY102023','MONTHDD,YYYY')2023-01-10
Exemplo 2 – Converter Data e Hora em Tipo de Data
O segundo exemplo ilustra como converter uma determinada cadeia de caracteres em data.
select to_date('10 de janeiro de 2023, 1:03', 'Mês dd, AAAA, HH: MI P.M.')
de dual;[/cc]
Nesse caso, precisamos especificar o formato de hora como HH:MI P.M.
A saída resultante é a mostrada:
TO_DATE('JANUARY10,2023,1:03','MONTHDD,YYYY,HH:MIP.M.')2023-01-10 01:03:00
Exemplo 3 – Especificando o parâmetro de idioma
Considere o exemplo abaixo demonstrando como usar a função to_date com o parâmetro nls_date_language.
select to_date('January 10, 2023, 1:03', 'Month dd, YYYY, HH:MI P.M.', 'nls_date_language=American')de duplo;
Isso deve retornar o valor:
2023-01-10 01:03:00Uma vez que mudamos o idioma da sessão como:
alterar conjunto de sessões nls_territory = 'Austrália';Converta o tempo.
select to_date('January 10, 2023, 1:03', 'Month dd, YYYY, HH:MI P.M.', 'nls_date_language=American')de duplo;
Conclusão
Nesta postagem, exploramos o uso da função to_date no banco de dados Oracle para converter um determinado literal de data de entrada em um tipo de data.