sql >> Base de Datos >  >> RDS >> Oracle

Cómo obtener la fecha de una cadena en Oracle

Problema:

Le gustaría convertir una cadena en una fecha en su conjunto de resultados.

Ejemplo:

Nuestra base de datos tiene una tabla llamada accounts_creation , con un campo llamado company_id del tipo de datos NÚMERO y dos campos NVARCHAR2 denominados company_name y registration_date como se muestra a continuación.

id_compañía nombre_de_la_empresa fecha_de_registro
1 Decatlón 5 de enero de 1978
2 Vestel 21 de septiembre de 1991
3 Capilla Blanca 18 de octubre de 2017
4 Copa de plata 4 de diciembre de 2021
5 Johnny Bros 28 de agosto de 1984

Queremos convertir la columna de cadena registration_date en una columna de fecha.

Solución:

Usaremos el TO_DATE() función. Aquí está la consulta:

SELECT company_id,
   company_name,
   TO_DATE(registration_date,'DD Mon YEAR') AS registration_date
FROM accounts_creation;

Este es el resultado de la consulta:

id_compañía nombre_de_la_empresa fecha_de_registro
1 Decatlón 05-ENE-78
2 Vestel 21-SEP-91
3 Capilla Blanca 18-OCT-17
4 Copa de plata 4-DIC-21
5 Johnny Bros 28-AGO-84

Discusión:

El TO_DATE(string, format) La función en Oracle convierte un valor de cadena en una fecha. La función toma dos argumentos:la cadena a convertir y el formato de fecha. En la especificación de formato, DD significa el día del mes (1-31), MON significa el nombre abreviado del mes y YEAR significa el año de 4 dígitos. Puede leer más sobre los formatos disponibles en la documentación de Oracle SQL aquí.