logo

Funciones de fecha y hora de MySQL

Manejo fecha y hora Los datos en MySQL son esenciales para muchas operaciones de bases de datos, especialmente cuando se trata de manejar marcas de tiempo, programar tareas o generar tareas basadas en el tiempo. MySQL proporciona una variedad de funciones de fecha y hora que ayudan a los usuarios a trabajar con valores de fecha, realizar cálculos y formatearlos según sea necesario.

Estas funciones permiten a los desarrolladores realizar cálculos, extraer partes específicas de una fecha o incluso formatear la salida para una mejor legibilidad. En este artículo, exploraremos las funciones de fecha de MySQL más utilizadas, explicaremos su sintaxis, brindaremos ejemplos y le explicaremos cómo usarlas de manera efectiva.

ex de nombre de usuario

Comprender los tipos de datos de fecha y hora de MySQL

Trabajar con fechas en MySQL puede resultar complicado para los principiantes, especialmente porque el formato de la fecha en la base de datos debe coincidir con el formato de los datos de entrada durante la inserción. En muchos casos, en lugar de simplemente usar una fecha simple, es posible que necesitemos almacenar tanto una fecha como una hora según el caso de uso. Aquí es donde el DATETIME y TIMESTAMP Los tipos de datos entran en juego.



MySQL proporciona los siguientes tipos de datos para almacenar valores de fecha y hora:

1. FECHA :

  • Formato :YYYY-MM-DD
  • Se utiliza para almacenar únicamente la fecha (año, mes y día) sin ningún componente de tiempo.

2. FECHA HORA :

  • Formato :YYYY-MM-DD HH:MM:SS
  • Almacena tanto la fecha como la hora, lo que lo hace útil cuando necesita capturar horas específicas junto con la fecha.

3. MARCA DE TIEMPO :

  • Formato :YYYY-MM-DD HH:MM:SS
  • Similar aDATETIMEperoTIMESTAMPTambién incluye soporte de zona horaria. Se actualiza automáticamente a la marca de tiempo actual cuando se modifica un registro, lo que lo hace ideal para realizar un seguimiento de los cambios en los registros a lo largo del tiempo.

4. AÑO :

  • Formato :YYYYoYY
  • Se utiliza para almacenar solo el año, lo que puede resultar útil para aplicaciones en las que solo se necesita el año, como el seguimiento de años de nacimiento o años fiscales.

Funciones de fecha y hora de MySQL

Ahora profundicemos en las funciones de fecha de MySQL que puede usar para manipular y consultar datos de fecha y hora de manera efectiva.

1. AHORA(): obtener la fecha y hora actuales

El AHORA() La función recupera la fecha y hora actuales en AAAA-MM-DD HH:MI:SS formato.

Consulta:

SELECT NOW();  

Producción:

ahora imagen de salida del método' title=

2. CURDATE() - Obtener sólo la fecha actual

Si solo necesitamos la fecha actual sin la parte de tiempo, podemos usar CURDATE() que devuelve la fecha en YYYY-MM-DD formato.

Consulta:

SELECT CURDATE();  

Producción: 

SALIDA2' loading='lazy' title=

3. CURTIME() - Obtener solo la hora actual

La función CURTIME() devuelve la hora actual en HH:MI:SS formato excluyendo la fecha.

Consulta:

SELECT CURTIME();  

Producción: 

SALIDA3' loading='lazy' title=

4. DATE() - Extrae la parte de fecha de un valor DATETIME

ElDATE()La función extrae sólo la parte de la fecha de unDATETIMEoTIMESTAMPvalor descartando el tiempo.

Ejemplo: Para una mesa llamada users :

Identificación Nombre Hora de nacimiento
4120Práctica1996-09-26 16:44:15.581

Consulta:

SELECT Name DATE(BirthTime)   
AS BirthDate FROM Test;

Producción:

Nombre Fecha de nacimiento
Práctica1996-09-26

5. EXTRACT() - Extraer partes de fechas específicas

EXTRACT()se utiliza para extraer partes específicas de una fecha, como el día, mes o año. Esta función puede resultar especialmente útil al analizar o comparar diferentes partes de una fecha. Se pueden considerar varias unidades pero solo se utilizan algunas como MICROSEGUNDO SEGUNDO MINUTO HORA DÍA SEMANA MES TRIMESTRE AÑO etc. Y 'fecha' es una expresión de fecha válida.

Sintaxis:

EXTRACTO(unidad DESDE fecha);

Consulta para extraer el día:

SELECT Name Extract(DAY FROM   
BirthTime) AS BirthDay FROM Test;

Producción: 

Nombre Cumpleaños
Práctica26

Consulta para extraer año:

SELECT Name Extract(YEAR FROM BirthTime)  
AS BirthYear FROM Test;

Producción: 

Nombre Año de nacimiento
Práctica1996

Consulta para extraer segundos:

gimp guardando como jpeg
SELECT Name Extract(SECOND FROM   
BirthTime) AS BirthSecond FROM Test;

Producción:

Nombre NacimientoSegundo
Práctica581

6. DATE_ADD() - Agregar intervalos a una fecha

El FECHA_ADD() La función le permite agregar intervalos de tiempo (por ejemplo, días, meses, años) a una fecha oDATETIMEvalor.

Sintaxis:

DATE_ADD(tipo de expresión de INTERVALO de fecha);

Ejemplo: Para la siguiente tabla llamada ' Prueba '

Identificación Nombre Hora de nacimiento
4120Práctica1996-09-26 16:44:15.581

Consulta a Agregar 1 año a una fecha

SELECT Name DATE_ADD(BirthTime INTERVAL   
1 YEAR) AS BirthTimeModified FROM Test;

Producción:

Nombre Hora de nacimientoModificado
Práctica1997-09-26 16:44:15.581

Consulta para agregar 30 días a una fecha

protocolo de internet smtp
SELECT Name DATE_ADD(BirthTime   
INTERVAL 30 DAY) AS BirthDayModified FROM Test;

Producción:

Nombre Día de nacimientoModificado
Práctica1996-10-26 16:44:15.581

Consulta para agregar 4 horas a una fecha

SELECT Name DATE_ADD(BirthTime INTERVAL  
4 HOUR) AS BirthHourModified FROM Test;

Producción: 

Nombre NacimientoSegundo
Práctica1996-10-26 20:44:15.581

7. FECHADIFF() – Encuentra la diferencia entre dos fechas

Esta función devuelve el número de días entre dos fechas. 

Sintaxis:

DATEDIFF(intervalofecha1 fecha2);

intervalo - minuto/hora/mes/año, etc.

fecha1 y fecha2: expresión de fecha/hora

Consulta a Encuentra la diferencia entre dos fechas

SELECT DATEDIFF(day '2017-01-13' '2017-01-03') AS DateDiff;  

Producción: 

FechaDiff

8. DATE_FORMAT() - Fecha y hora del formato

DATE_FORMAT() nos permite formatear un FECHA FECHA HORA o MARCA DE TIEMPO valor en un formato personalizado utilizando marcadores de posición.

xd xd significado

Sintaxis:

DATE_FORMAT(formato de fecha);

la fecha es una fecha válida y el formato especifica el formato de salida para la fecha/hora. Los formatos que se pueden utilizar son:

  • %a-Nombre abreviado del día de la semana (domingo-sábado)
  • %b-Nombre abreviado del mes (enero-diciembre)
  • %c-Mes numérico (0-12)
  • %D-Día del mes con sufijo en inglés (0º 1º 2º 3º)
  • %d-Día del mes numérico (00-31)
  • %e-Día del mes numérico (0-31)
  • %f-Microsegundos (000000-999999)
  • %H-Hora (00-23)
  • %h-Hora (01-12)
  • %I-Hora (01-12)
  • %i-Minutos numéricos (00-59)
  • %j-Día del año (001-366)
  • %k-hora (0-23)
  • %l-hora (1-12)
  • %M-Nombre del mes (enero-diciembre)
  • %m-Mes numérico (00-12)
  • %p-AM o PM
  • %r-Hora 12 horas (hh:mm: ss seguido de AM o PM)
  • %S-Segundos (00-59)
  • %s-segundos (00-59)
  • %T-Hora 24 horas (hh:mm:ss)
  • %U-Semana (00-53) donde el domingo es el primer día de la semana
  • %u-Semana (00-53) donde el lunes es el primer día de la semana
  • %V-Week (01-53) donde el domingo es el primer día de la semana usado con %X
  • %v-Semana (01-53) donde el lunes es el primer día de la semana usado con %x
  • %W-Nombre del día de la semana (domingo-sábado)
  • %w-Día de la semana (0=domingo 6=sábado)
  • %X-Año para la semana donde el domingo es el primer día de la semana se utilizan cuatro dígitos con %V
  • %x-Año para la semana donde el lunes es el primer día de la semana se utilizan cuatro dígitos con %v
  • %Y-Año numérico de cuatro dígitos
  • %y-Año numérico de dos dígitos

Consulta para dar formato a una fecha

SELECT DATE_FORMAT('2025-04-10 12:34:56' '%W %M %d %Y') AS formatted_date;

Producción:

fecha_formateada
Jueves 10 de abril de 2025

Mejores prácticas para trabajar con fecha y hora en MySQL

1. Utilice siempre formatos de fecha adecuados

Al insertar o actualizar fechas, asegúrese de seguir los formatos esperados de MySQL (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). Esto garantiza que sus consultas devuelvan los resultados esperados sin errores.

2. Consideraciones de zona horaria con TIMESTAMP

MientrasDATETIMEno almacena información de zona horariaTIMESTAMPhace. Si su aplicación es sensible a la zona horaria (por ejemplo, en aplicaciones internacionales), considere usarTIMESTAMPpara campos de fecha y hora que deben tener en cuenta diferentes zonas horarias.

3. Manejo de rangos de fechas en consultas

Para filtrar datos según rangos de fechas (por ejemplo, recuperar todos los registros de un mes o año específico), asegúrese de utilizar comparaciones de fechas adecuadas en elWHEREcláusula. Ejemplo:

SELECT * FROM orders  
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';

4. Consideraciones de rendimiento

Cuando trabaje con funciones de fecha y hora, especialmente en grandes conjuntos de datos, tenga en cuenta el impacto en el rendimiento. Evite el uso de funciones comoNOW()oCURDATE()en elWHEREcláusula, ya que pueden ralentizar las consultas cuando se trata de tablas grandes.

Conclusión

Funciones de fecha y hora de MySQL son herramientas esenciales para manejo y manipulando datos temporales dentro de sus bases de datos. Al dominar funciones comoNOW() CURDATE() DATE_ADD() DATEDIFF()yDATE_FORMAT()puedes trabajar fácilmente con cálculos basados ​​en el tiempo comparaciones y formatos . La clave para utilizar estas funciones de forma eficaz es comprender su sintaxis, cuándo y cómo utilizarlas y sus implicaciones en el rendimiento en grandes conjuntos de datos. Con este conocimiento, podrá crear consultas más eficientes, precisas y escalables para todas sus necesidades relacionadas con fechas y horas en MySQL.

Crear cuestionario