TO_DATE
Equivalente en MySQL:
Convierte una cadena en una fecha según una plantilla de formato.
PostgreSQL 17.9
TO_DATE(string, format)- string
- Cadena con una fechatext
- format
- Plantilla de formato, por ejemplo DD.MM.YYYYtext
Valor devuelto
Fecha (date); error, no NULL, si un campo no se puede leer o la fecha no existe
Ejemplos
Fecha a partir de un texto con el nombre del mes
PostgreSQL 17.9
SELECT TO_DATE('November 13, 1998', 'Month DD, YYYY');Fecha en formato DD.MM.YYYY
PostgreSQL 17.9
SELECT TO_DATE('08.03.2024', 'DD.MM.YYYY');Texto sobrante y año corto
PostgreSQL 17.9
SELECT TO_DATE('08.03.2024 garbage', 'DD.MM.YYYY') AS extra_text,
TO_DATE('8/3/24', 'DD.MM.YYYY') AS short_year;Detalles
La cadena se lee de forma permisiva: el texto sobrante después de la plantilla se omite y un número puede tener menos dígitos que en la plantilla. Por eso TO_DATE('8/3/24', 'DD.MM.YYYY') devuelve 0024-03-08: un año de dos cifras se lee tal cual, no como 2024.
Para una cadena en formato YYYY-MM-DD es más sencillo ::date: esta conversión comprueba toda la cadena y no omite texto sobrante.