Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

MySQL STR_TO_DATE() Function

La función `STR_TO_DATE()` de MySQL se utiliza para convertir una cadena en una fecha basándose en un formato especificado. Es especialmente útil para convertir cadenas de fechas en objetos de fecha con los que pueda trabajar MySQL.

Utilización

La función `STR_TO_DATE()` se utiliza normalmente cuando necesitas transformar una cadena en un formato de fecha para realizar operaciones relacionadas con la fecha. Esta función necesita la cadena que hay que convertir y el formato en el que se especifica la fecha.

STR_TO_DATE(string, format);

En esta sintaxis, `cadena` es la cadena de fecha que quieres convertir, y `formato` es el formato que coincide con la estructura de la cadena.

Especificadores de formato comunes

Aquí tienes algunos especificadores de formato comunes que puedes utilizar con `STR_TO_DATE()`:

  • %d: Día del mes (01 a 31)
  • %m: Mes (01 a 12)
  • %Y: Año (cuatro dígitos)
  • %H: Hora (00 a 23)
  • %i: Minutos (de 00 a 59)
  • %s: Segundos (de 00 a 59)
  • %W: Nombre del día de la semana (por ejemplo, domingo)
  • %b: Nombre abreviado del mes (por ejemplo, Ene)

Ejemplos

1. Conversión básica de cadena a fecha

SELECT STR_TO_DATE('10-12-2023', '%d-%m-%Y');

Este ejemplo convierte la cadena "10-12-2023" en una fecha utilizando el formato "%d-%m-%Y", que se traduce como "10 de diciembre de 2023".

2. Conversión con el tiempo

SELECT STR_TO_DATE('2023/12/10 14:30:00', '%Y/%m/%d %H:%i:%s');

Aquí, la función convierte "2023/12/10 14:30:00" en un objeto de fecha y hora, interpretando el formato como "Año/Mes/Día Hora:Minuto:Segundo".

3. Análisis de diferentes formatos de fecha

SELECT STR_TO_DATE('Saturday, Dec 10 2023', '%W, %b %d %Y');

Este ejemplo demuestra la conversión de una cadena con un formato de fecha diferente "Sábado, 10 Dic 2023" utilizando "%W, %b %d %Y" para interpretar los nombres de los días y los nombres abreviados de los meses.

4. Ejemplo de formato no coincidente

SELECT STR_TO_DATE('2023-10-12', '%d-%m-%Y');

Este ejemplo devuelve `NULL` porque el formato no coincide con la cadena de entrada, lo que pone de relieve la importancia de que la cadena de formato coincida exactamente con la estructura de la cadena de entrada.

Consejos y buenas prácticas

  • Garantiza la exactitud del formato. La cadena de formato debe coincidir exactamente con la estructura de la cadena de fecha para que la conversión tenga éxito.
  • Maneja los NULL con elegancia. Si el formato no coincide, la función devuelve `NULL`; utiliza `COALESCE()` para gestionar los posibles nulos.
  • Aprovecha las funciones de fecha de MySQL. Tras la conversión, utiliza las funciones de fecha de MySQL para manipular y consultar datos de fecha de forma eficaz.
  • Prueba con datos de muestra. Valida la función con datos de muestra para asegurarte de que la cadena de formato se corresponde correctamente con la estructura de la cadena de entrada.
  • Ten en cuenta la configuración regional. Ten en cuenta que los especificadores de formato de fecha pueden variar según la configuración regional, lo que puede afectar al análisis.

Errores comunes y mensajes de error

  • Formato no coincidente: Un error común es la falta de coincidencia entre la cadena de fecha y la cadena de formato, lo que da como resultado un valor `NULL`.
  • Diferencias de localización: Asegúrate de que los especificadores de formato coinciden con la configuración regional si la cadena de fecha utiliza nombres de mes o día localizados.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis