- Software y sistemas
- Base de datos
22007
PostgreSQL 22007 en base de datos: formato de fecha u hora no válido
Evidencia vinculada a esta decisión
Ver fuente: PostgreSQL 18 Appendix A: Error CodesNivel de riesgo
Seguro
Puedes actuar sin peligro siguiendo las comprobaciones seguras.
Urgencia
Media — atiéndelo hoy
Respuesta rápida
PostgreSQL no pudo interpretar un texto como fecha u hora. Revisa el valor exacto enviado y el ajuste DateStyle de la sesión; enviar las fechas en formato ISO 8601, como 1999-01-08, evita ambigüedades.
Seguridad primero
Antes de continuar
- No cambies DateStyle en todo el servidor para que una aplicación funcione: cambia la interpretación de fechas ambiguas para todos los clientes.
Puedes hacerlo con seguridad
- Valor exacto enviado
- DateStyle de la sesión
- Lo que puede hacer quien introduce la fecha
Deja estas tareas a un profesional cualificado
- No intentes esta tarea profesional: Enviar fechas tipadas o en ISO 8601
- No intentes esta tarea profesional: Validar la fecha en la entrada
Lo que un técnico debe poder justificar
Viene un técnico
Estos son los pasos que tiene que hacer y enseñarte. Márcalos mientras trabaja: si se salta pasos, no aceptes el cambio de pieza.
No son instrucciones para que abras o manipules el equipo. Son las comprobaciones que deben sostener una conclusión técnica.
Enviar fechas tipadas o en ISO 8601
Qué haceEl desarrollador envía las fechas como parámetros del tipo correcto o como texto ISO 8601 desde la aplicación.
Te tiene que enseñarla conversión aplicada.
Por escritola prueba con fechas ambiguas como 01/02/2003.
Validar la fecha en la entrada
Qué haceEl equipo valida el formato antes de llegar a la base y muestra un mensaje claro.
Te tiene que enseñarla validación.
Por escritolos casos probados.
Antes de aceptar una pieza o reparación
Aún no ha demostrado nada. No aceptes un cambio de pieza solo por el código.
Sigue estos pasos
Aviso: Sigue el orden documentado. Un código identifica el sistema afectado, pero por sí solo no demuestra qué pieza está averiada.
Valor exacto enviado
- Quién:
- tú, como desarrollador.
- Cómo:
- registra una copia anonimizada del texto que llegó al servidor y la columna o parámetro de destino; usa Position si el driver lo da.
- Resultado que importa:
- el formato real del valor.
- Si el formato no es ISO 8601:
- indica que depende de DateStyle; pasa a revisarlo.
- Si ya es ISO 8601 y falla:
- apunta a un valor imposible o mal construido en origen.
- Evidencia a conservar:
- valor anonimizado, tipo de destino y hora.
Evidencia: PostgreSQL error and notice fields · PostgreSQL 18 date/time types
DateStyle de la sesión
- Quién:
- tú, como desarrollador.
- Cómo:
- ejecuta SHOW DateStyle en la misma conexión que usa la aplicación.
- Resultado que importa:
- si el orden configurado coincide con el del valor enviado.
- Si no coincide:
- confirma la ambigüedad; envía ISO 8601 en lugar de cambiar el ajuste global.
- Si coincide:
- descarta el orden y revisa el formato del texto.
- Evidencia a conservar:
- salida del comando.
Evidencia: PostgreSQL 18 date/time types · PostgreSQL 18 SHOW
Lo que puede hacer quien introduce la fecha
- Quién:
- quien usa la aplicación.
- Cómo:
- revisa si la aplicación pide un formato concreto y escribe la fecha con él.
- Resultado que importa:
- si la fecha se acepta.
- Si se acepta:
- confirma un formato de entrada.
- Si no se acepta con el formato indicado:
- indica un fallo de la aplicación; avisa al soporte con la hora.
- Evidencia a conservar:
- captura del campo y del mensaje.
Evidencia: PostgreSQL 18 date/time types
Situación no resuelta
Si el error persiste, no sigas probando por tu cuenta. Mira qué tiene que hacer y enseñarte el técnico.
Técnico virtual
¿Sigue apareciendo 22007 tras comprobarlo?
Este recorrido usa el código exacto y tus respuestas para elegir una prueba, su resultado esperado y la siguiente bifurcación.
Dónde se aplica este código
Un código solo tiene significado dentro del producto y la versión correctos.
Ámbito principal
- Sistema
- Software y sistemas
- Marca
- PostgreSQL
- Tipo de producto
- Base de datos
Variantes conocidas del código
- invalid_datetime_format
- PostgreSQL 22007
- SQLSTATE 22007
Qué significa
El apéndice A asigna 22007 a invalid_datetime_format, en la clase 22 (excepción de datos). PostgreSQL acepta muchos formatos de fecha y hora, pero en algunos el orden de día, mes y año es ambiguo y depende del parámetro DateStyle de la sesión (MDY, DMY o YMD). La documentación recomienda ISO 8601 porque se interpreta igual en cualquier modo. Los literales de fecha van entre comillas simples. El código indica que el texto no encaja con un formato válido, no que la columna esté mal definida.
Advertencias y condiciones de parada
- Seguroadvertencia editorial
No cambies DateStyle en todo el servidor para que una aplicación funcione: cambia la interpretación de fechas ambiguas para todos los clientes.
Evidencia: PostgreSQL 18 date/time types
Síntomas y causas
Causas probables · en orden
- Formato que el analizador no reconoceFrecuente
El texto trae separadores, nombres o partes que no corresponden a ningún formato aceptado. Falla con cualquier DateStyle.
Evidencia: PostgreSQL 18 date/time types
- Orden de campos distinto del DateStyle de la sesiónPosible
La aplicación envía día y mes en un orden y la sesión espera otro. Se distingue porque el mismo valor funciona al cambiar DateStyle o al usar ISO 8601.
Evidencia: PostgreSQL 18 date/time types
Fuentes y referencias técnicas
- 1
PostgreSQL 18 Appendix A: Error Codes
PostgreSQL Global Development Group · 2026 · official_doc
- 2
PostgreSQL error and notice fields
PostgreSQL Global Development Group · 2026 · official_doc
¿Te ha resultado útil esta ficha?