Cálculos en MySQL

Funciones fecha
FuncionDescripción
ADDDATE()Añade un numero de dias a la fecha
ADDTIME()Añade un numero de horas a la expresion fecha-hora
CONVERT_TZ()Convierte de una a otra zona horaria
DATE()Extrae la fecha de un expresion fecha-hora
DATE_ADD()Añade horas a una fecha
DATE_FORMAT()Da formato especifico
DATE_SUB()Quita horas a una fecha
DATEDEFF()Resta dos fecha
DAYNAME()Nombre del dia de la semana
DAYOFMONTH()Dia del mes (1-31)
DAYOFWEEK()Dia de la semana (0=domingo)
DAYOFYEAR()Dia del año (1-366)
FROM_DAYS()Convierte numero (UNIX) de dias a fecha
GET_FORMAT()Cadena de formato de fecha
HOURS()Extrae la horas
LAST_DAYUltimo dia del mes
MICROSECOND()Extrae microsegundos
MINUTE()extrae minutos
MONTH()Extrae mes (1-12)
MONTHNAME()Extrae nombre del mes
PERIOD_ADD()Añade meses a una fecha
PERIOD_DIFF()Retorna los meses entre dos fechas
QUARTER()Trimestre
SEC_TO_TIME()Convierte segundos en tiempo (h:m:S)
SECOND()Devuelve los segundos (0-59)
STR_TO_DATE()convierte cadena a fecha
SUBTIME()Resta tiempos
TIME()Extrae la porcion tiempo (h:m:s)
TIME_FORMAT()Formatea como tiempo
TIME_TO_SEC()Convierte a segundos
TIMEDIFF()Resta tiempos
TO_DAYS()Convierte a dias
TO_SECONDS()Convierte a segundos
WEEK()Retorna la semana del año
WEEKDAY()Retorna el dia de la semana (0=domingo)
WEEKOFYEAR()Retorna semana del año (1-53)
YEAR()Retorna el año
Parametros fecha
ParametroDescripción
%yAño (2 digitos)
%YAno (4 digitos)
%mMes (1-12)
%MMes (January...
%dDia (1-31)
%h o %lHora (1-12)
%H o %kHopa (0-23)
%iMinutos (0-59)
%sSegundos (0-59)
%fMicrosegundos (0-999999)
%wDia de la semana (0=domingo)
%WDia de la semana (Sunday..
%VSemana del mes (1-53) inicia domingo
%pAM o PM
%jDia del año (1-366)
SELECT DATE_FORMAT('2023-08-13', '%X%V');    -> '202332'
SELECT DAYNAME('2023-08-12');                -> 'Saturday'

1. Cálculos con fechas

Añadimos este capitulo porque no es fácil hacer cálculos entre fechas

Para determinar la edad de una persona simplemente se resta la fecha actual de la fecha de nacimiento. YEAR() obtiene los 4 primeros dígitos (año) y RIGHT() obtiene los últimos 5 dígitos (MM-DD), finalmente la condición retornara un 0 o un 1.

SELECT YEAR(CURRENT_DATE)-YEAR(fecha)-(RIGHT(CURRENT_DATE,5)<RIGHT(fecha,5)) AS t, fecha FROM cheques;