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í.