MySQL - Funciones de fecha y hora
No Señor. | Nombre y descripción |
---|---|
1 | ADDDATE () Agrega fechas |
2 | AGREGAR TIEMPO() Agrega tiempo |
3 | CONVERT_TZ () Convierte de una zona horaria a otra |
4 | CURDATE () Devuelve la fecha actual |
5 | CURRENT_DATE (), CURRENT_DATE Sinónimos de CURDATE () |
6 | CURRENT_TIME (), CURRENT_TIME Sinónimos de CURTIME () |
7 | CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP Sinónimos de AHORA () |
8 | CURTIME () Devuelve la hora actual |
9 | DATE_ADD () Agrega dos fechas |
10 | FORMATO DE FECHA() Formatea la fecha según lo especificado |
11 | DATE_SUB () Resta dos fechas |
12 | FECHA() Extrae la parte de fecha de una expresión de fecha o fecha y hora |
13 | DATEDIFF () Resta dos fechas |
14 | DÍA() Sinónimo de DAYOFMONTH () |
15 | DAYNAME () Devuelve el nombre del día de la semana. |
dieciséis | DIA DEL MES() Devuelve el día del mes (1-31) |
17 | DÍA DE LA SEMANA() Devuelve el índice de días de la semana del argumento. |
18 | DAYOFYEAR () Devuelve el día del año (1-366) |
19 | EXTRAER Extrae parte de una fecha |
20 | FROM_DAYS () Convierte un número de día en una fecha |
21 | FROM_UNIXTIME () Formatea la fecha como una marca de tiempo UNIX |
22 | HORA() Extrae la hora |
23 | ÚLTIMO DÍA Devuelve el último día del mes para el argumento. |
24 | LOCALTIME (), LOCALTIME Sinónimo de NOW () |
25 | LOCALTIMESTAMP, LOCALTIMESTAMP () Sinónimo de NOW () |
26 | MAKEDATE () Crea una fecha a partir del año y el día del año |
27 | HACER TIEMPO HACER TIEMPO() |
28 | MICROSEGUNDO() Devuelve los microsegundos del argumento |
29 | MINUTO() Devuelve el minuto del argumento. |
30 | MES() Devuelve el mes desde la fecha pasada |
31 | MONTHNAME () Devuelve el nombre del mes |
32 | AHORA() Devuelve la fecha y hora actuales |
33 | PERIOD_ADD () Agrega un período a un año-mes |
34 | PERIOD_DIFF () Devuelve el número de meses entre períodos. |
35 | TRIMESTRE() Devuelve el trimestre a partir de un argumento de fecha. |
36 | SEC_TO_TIME () Convierte los segundos al formato 'HH: MM: SS' |
37 | SEGUNDO() Devuelve el segundo (0-59) |
38 | STR_TO_DATE () Convierte una cadena en una fecha |
39 | SUBDATE () Cuando se invoca con tres argumentos, un sinónimo de DATE_SUB () |
40 | SUBTIME () Resta tiempos |
41 | SYSDATE () Devuelve la hora a la que se ejecuta la función. |
42 | FORMATO DE TIEMPO() Formatos como tiempo |
43 | TIME_TO_SEC () Devuelve el argumento convertido a segundos. |
44 | HORA() Extrae la parte de tiempo de la expresión pasada |
45 | TIMEDIFF () Resta tiempo |
46 | TIMESTAMP () Con un solo argumento, esta función devuelve la expresión de fecha o fecha y hora. Con dos argumentos, la suma de los argumentos |
47 | TIMESTAMPADD () Agrega un intervalo a una expresión de fecha y hora |
48 | TIMESTAMPDIFF () Resta un intervalo de una expresión de fecha y hora |
49 | TO_DAYS () Devuelve el argumento de fecha convertido a días. |
50 | UNIX_TIMESTAMP () Devuelve una marca de tiempo UNIX |
51 | UTC_DATE () Devuelve la fecha UTC actual |
52 | UTC_TIME () Devuelve la hora UTC actual |
53 | UTC_TIMESTAMP () Devuelve la fecha y hora UTC actual |
54 | SEMANA() Devuelve el número de la semana |
55 | DÍA LABORABLE() Devuelve el índice de días de la semana. |
56 | WEEKOFYEAR () Devuelve la semana calendario de la fecha (1-53) |
57 | AÑO() Devuelve el año |
58 | SEMANA AÑO () Devuelve el año y la semana |
ADDDATE (fecha, INTERVAL unidad expr), ADDDATE (expr, días)
Cuando se invoca con la forma INTERVAL del segundo argumento, ADDDATE () es un sinónimo de DATE_ADD (). La función relacionada SUBDATE () es sinónimo de DATE_SUB (). Para obtener información sobre el argumento de la unidad INTERVAL, consulte la discusión sobre DATE_ADD ().
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Cuando se invoca con la forma de días del segundo argumento, MySQL lo trata como un número entero de días que se agregarán a expr.
mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
ADDTIME (expr1, expr2)
ADDTIME () agrega expr2 a expr1 y devuelve el resultado. expr1 es una expresión de hora o fecha y hora y expr2 es una expresión de hora.
mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
| 1998-01-02 01:01:01.000001 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
CONVERT_TZ (dt, from_tz, to_tz)
Esto convierte un valor de fecha y hora dt de la zona horaria dada por from_tz a la zona horaria dada por to_tz y devuelve el valor resultante. Esta función devuelve NULL si los argumentos no son válidos.
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','GMT','MET') |
+---------------------------------------------------------+
| 2004-01-01 13:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00') |
+---------------------------------------------------------+
| 2004-01-01 22:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
CURDATE ()
Devuelve la fecha actual como un valor en formato 'AAAA-MM-DD' o AAAAMMDD, dependiendo de si la función se usa en una cadena o en un contexto numérico.
mysql> SELECT CURDATE();
+---------------------------------------------------------+
| CURDATE() |
+---------------------------------------------------------+
| 1997-12-15 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CURDATE() + 0;
+---------------------------------------------------------+
| CURDATE() + 0 |
+---------------------------------------------------------+
| 19971215 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
CURRENT_DATE y CURRENT_DATE ()
CURRENT_DATE y CURRENT_DATE () son sinónimos de CURDATE ()
CURTIME ()
Devuelve la hora actual como un valor en formato 'HH: MM: SS' o HHMMSS, dependiendo de si la función se usa en una cadena o en un contexto numérico. El valor se expresa en la zona horaria actual.
mysql> SELECT CURTIME();
+---------------------------------------------------------+
| CURTIME() |
+---------------------------------------------------------+
| 23:50:26 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CURTIME() + 0;
+---------------------------------------------------------+
| CURTIME() + 0 |
+---------------------------------------------------------+
| 235026 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
CURRENT_TIME y CURRENT_TIME ()
CURRENT_TIME y CURRENT_TIME () son sinónimos de CURTIME ().
CURRENT_TIMESTAMP y CURRENT_TIMESTAMP ()
CURRENT_TIMESTAMP y CURRENT_TIMESTAMP () son sinónimos de NOW ().
FECHA (expr)
Extrae la parte de fecha de la expresión de fecha o fecha y hora expr.
mysql> SELECT DATE('2003-12-31 01:02:03');
+---------------------------------------------------------+
| DATE('2003-12-31 01:02:03') |
+---------------------------------------------------------+
| 2003-12-31 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DATEDIFF (expr1, expr2)
DATEDIFF () devuelve expr1. expr2 expresado como un valor en días de una fecha a la otra. expr1 y expr2 son expresiones de fecha o fecha y hora. En el cálculo solo se utilizan las partes de fecha de los valores.
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+---------------------------------------------------------+
| DATEDIFF('1997-12-31 23:59:59','1997-12-30') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DATE_ADD (fecha, INTERVAL unidad expr), DATE_SUB (fecha, INTERVAL unidad expr)
Estas funciones realizan aritmética de fechas. fecha es un valor DATETIME o DATE que especifica la fecha de inicio. expr es una expresión que especifica el valor del intervalo que se sumará o restará de la fecha de inicio. expr es una cadena; puede comenzar con un '-' para intervalos negativos. unidad es una palabra clave que indica las unidades en las que se debe interpretar la expresión.
La palabra clave INTERVAL y el especificador de unidad no distinguen entre mayúsculas y minúsculas.
La siguiente tabla muestra la forma esperada del argumento expr para cada valor unitario;
unidad Value | ExpectedexprFormat |
---|---|
MICROSEGUNDO | MICROSECONDS |
SEGUNDO | SEGUNDOS |
MINUTO | MINUTOS |
HORA | HORAS |
DÍA | DIAS |
SEMANA | SEMANAS |
MES | MESES |
TRIMESTRE | CUARTELES |
AÑO | AÑOS |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTOS.MICROSECONDS' |
MINUTE_SECOND | 'MINUTOS: SEGUNDOS' |
HOUR_MICROSECOND | 'HORAS.MICROSECONDOS' |
HOUR_SECOND | 'HORAS: MINUTOS: SEGUNDOS' |
HOUR_MINUTE | 'HORAS: MINUTOS' |
DAY_MICROSECOND | 'DÍAS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS: MINUTES: SECONDS' |
DAY_MINUTE | 'DAYS HOURS: MINUTES' |
DAY_HOUR | 'DÍAS HORAS' |
AÑO MES | 'AÑOS-MESES' |
Los valores QUARTER y WEEK están disponibles a partir de MySQL 5.0.0.
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
-> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59', INTERVAL... |
+---------------------------------------------------------+
| 1998-01-01 00:01:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
| DATE_ADD('1999-01-01', INTERVAL 1 HOUR) |
+---------------------------------------------------------+
| 1999-01-01 01:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DATE_FORMAT (fecha, formato)
Formatea el valor de la fecha de acuerdo con la cadena de formato.
Los siguientes especificadores se pueden utilizar en la cadena de formato. Los .%. Se requiere un carácter antes de los caracteres del especificador de formato.
S. No. | Especificador y descripción |
---|---|
1 | %a Nombre abreviado del día de la semana (dom .. sábado) |
2 | %b Nombre del mes abreviado (enero, diciembre) |
3 | %c Mes, numérico (0..12) |
4 | %D Día del mes con sufijo en inglés (0, 1, 2, 3,.) |
5 | %d Día del mes, numérico (00..31) |
6 | %e Día del mes, numérico (0..31) |
7 | %f Microsegundos (000000..999999) |
8 | %H Hora (00..23) |
9 | %h Hora (01..12) |
10 | %I Hora (01..12) |
11 | %i Minutos, numéricos (00..59) |
12 | %j Día del año (001..366) |
13 | %k Hora (0..23) |
14 | %l Hora (1..12) |
15 | %M Nombre del mes (enero ... diciembre) |
dieciséis | %m Mes, numérico (00..12) |
17 | %p Am o PM |
18 | %r Hora, 12 horas (hh: mm: ss seguido de AM o PM) |
19 | %S Segundos (00..59) |
20 | %s Segundos (00..59) |
21 | %T Hora, 24 horas (hh: mm: ss) |
22 | %U Semana (00..53), donde el domingo es el primer día de la semana |
23 | %u Semana (00..53), donde el lunes es el primer día de la semana |
24 | %V Semana (01..53), donde el domingo es el primer día de la semana; usado con% X |
25 | %v Semana (01..53), donde el lunes es el primer día de la semana; usado con% x |
26 | %W Nombre del día de la semana (domingo ... sábado) |
27 | %w Día de la semana (0 = domingo..6 = sábado) |
28 | %X Año de la semana donde el domingo es el primer día de la semana, numérico, cuatro dígitos; usado con% V |
29 | %x Año de la semana, donde el lunes es el primer día de la semana, numérico, cuatro dígitos; usado con% v |
30 | %Y Año, numérico, cuatro dígitos |
31 | %y Año, numérico (dos dígitos) |
32 | % Un.% Literal. personaje |
33 | %x x, para cualquier x. no enumerado arriba |
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') |
+---------------------------------------------------------+
| Saturday October 1997 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
-> '%H %k %I %r %T %S %w');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00....... |
+---------------------------------------------------------+
| 22 22 10 10:23:00 PM 22:23:00 00 6 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DATE_SUB (fecha, INTERVAL expr unidad)
Esto es similar a la función DATE_ADD ().
DÍA (fecha)
DAY () es un sinónimo de DAYOFMONTH ().
DAYNAME (fecha)
Devuelve el nombre del día de la semana para la fecha.
mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
| DAYNAME('1998-02-05') |
+---------------------------------------------------------+
| Thursday |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DAYOFMONTH (fecha)
Devuelve el día del mes para la fecha, en el rango de 0 a 31.
mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
| DAYOFMONTH('1998-02-03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DAYOFWEEK (fecha)
Devuelve el índice de días de la semana para la fecha (1 = domingo, 2 = lunes,., 7 = sábado). Estos valores de índice corresponden al estándar ODBC.
mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
| DAYOFWEEK('1998-02-03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DAYOFYEAR (fecha)
Devuelve el día del año para la fecha, en el rango de 1 a 366.
mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
| DAYOFYEAR('1998-02-03') |
+---------------------------------------------------------+
| 34 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
EXTRACTO (unidad DESDE la fecha)
La función EXTRACT () usa los mismos tipos de especificadores de unidad que DATE_ADD () o DATE_SUB (), pero extrae partes de la fecha en lugar de realizar operaciones aritméticas de fechas.
mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
+---------------------------------------------------------+
| EXTRACT(YEAR FROM '1999-07-02') |
+---------------------------------------------------------+
| 1999 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
+---------------------------------------------------------+
| EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03') |
+---------------------------------------------------------+
| 199907 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
FROM_DAYS (N)
Dado un número de día N, devuelve un valor de FECHA.
mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
| FROM_DAYS(729669) |
+---------------------------------------------------------+
| 1997-10-07 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Utilice FROM_DAYS () con precaución en fechas antiguas. No está diseñado para usarse con valores que preceden al advenimiento del calendario gregoriano (1582).
FROM_UNIXTIME (unix_timestamp)
FROM_UNIXTIME (unix_timestamp, formato)
Devuelve una representación del argumento unix_timestamp como un valor en formato 'YYYY-MM-DD HH: MM: SS' o YYYYMMDDHHMMSS, dependiendo de si la función se usa en una cadena o en un contexto numérico. El valor se expresa en la zona horaria actual. unix_timestamp es un valor de marca de tiempo interno como el que produce la función UNIX_TIMESTAMP ().
Si se proporciona formato, el resultado se formatea de acuerdo con la cadena de formato, que se usa de la misma manera que se indica en la entrada para la función DATE_FORMAT ().
mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
| FROM_UNIXTIME(875996580) |
+---------------------------------------------------------+
| 1997-10-04 22:23:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
HORA (hora)
Devuelve la hora por la hora. El rango del valor de retorno es de 0 a 23 para los valores de hora del día. Sin embargo, el rango de valores de TIME es en realidad mucho mayor, por lo que HOUR puede devolver valores superiores a 23.
mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
| HOUR('10:05:03') |
+---------------------------------------------------------+
| 10 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
LAST_DAY (fecha)
Toma un valor de fecha o fecha y hora y devuelve el valor correspondiente para el último día del mes. Devuelve NULL si el argumento no es válido.
mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
| LAST_DAY('2003-02-05') |
+---------------------------------------------------------+
| 2003-02-28 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
LOCALTIME y LOCALTIME ()
LOCALTIME y LOCALTIME () son sinónimos de NOW ().
LOCALTIMESTAMP y LOCALTIMESTAMP ()
LOCALTIMESTAMP y LOCALTIMESTAMP () son sinónimos de NOW ().
MAKEDATE (año, día del año)
Devuelve una fecha, valores de año y día del año dados. dayofyear debe ser mayor que 0 o el resultado es NULL.
mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
+---------------------------------------------------------+
| MAKEDATE(2001,31), MAKEDATE(2001,32) |
+---------------------------------------------------------+
| '2001-01-31', '2001-02-01' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MAKETIME (hora, minuto, segundo)
Devuelve un valor de tiempo calculado a partir de los argumentos de hora, minuto y segundo.
mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
| MAKETIME(12,15,30) |
+---------------------------------------------------------+
| '12:15:30' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MICROSEGUNDO (expr)
Devuelve los microsegundos de la expresión de hora o fecha y hora expr como un número en el rango de 0 a 999999.
mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
| MICROSECOND('12:00:00.123456') |
+---------------------------------------------------------+
| 123456 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MINUTE (hora)
Devuelve el minuto para el tiempo, en el rango de 0 a 59.
mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
| MINUTE('98-02-03 10:05:03') |
+---------------------------------------------------------+
| 5 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MES (fecha)
Devuelve el mes para la fecha, en el rango de 0 a 12.
mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
| MONTH('1998-02-03') |
+---------------------------------------------------------+
| 2 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MONTHNAME (fecha)
Devuelve el nombre completo del mes para la fecha.
mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
| MONTHNAME('1998-02-05') |
+---------------------------------------------------------+
| February |
+---------------------------------------------------------+
1 row in set (0.00 sec)
AHORA()
Devuelve la fecha y hora actuales como un valor en formato 'AAAA-MM-DD HH: MM: SS' o AAAAMMDDHHMMSS, dependiendo de si la función se utiliza en una cadena o en un contexto numérico. El valor se expresa en la zona horaria actual.
mysql> SELECT NOW();
+---------------------------------------------------------+
| NOW() |
+---------------------------------------------------------+
| 1997-12-15 23:50:26 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
PERIOD_ADD (P, N)
Agrega N meses al período P (en el formato YYMM o YYYYMM). Devuelve un valor con el formato AAAAMM. Tenga en cuenta que el argumento del período P no es un valor de fecha.
mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
| PERIOD_ADD(9801,2) |
+---------------------------------------------------------+
| 199803 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
PERIOD_DIFF (P1, P2)
Devuelve el número de meses entre los períodos P1 y P2. P1 y P2 deben tener el formato YYMM o YYYYMM. Tenga en cuenta que los argumentos de período P1 y P2 no son valores de fecha.
mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
| PERIOD_DIFF(9802,199703) |
+---------------------------------------------------------+
| 11 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TRIMESTRE (fecha)
Devuelve el trimestre del año para la fecha, en el rango de 1 a 4.
mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
| QUARTER('98-04-01') |
+---------------------------------------------------------+
| 2 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Segunda vez)
Devuelve el segundo para el tiempo, en el rango de 0 a 59.
mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
| SECOND('10:05:03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
SEC_TO_TIME (segundos)
Devuelve el argumento de segundos, convertido a horas, minutos y segundos, como un valor en formato 'HH: MM: SS' o HHMMSS, dependiendo de si la función se usa en una cadena o en un contexto numérico.
mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
| SEC_TO_TIME(2378) |
+---------------------------------------------------------+
| 00:39:38 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
STR_TO_DATE (str, formato)
Esta es la inversa de la función DATE_FORMAT (). Toma una cadena str y un formato de cadena de formato. STR_TO_DATE () devuelve un valor DATETIME si la cadena de formato contiene partes de fecha y hora, o un valor DATE o TIME si la cadena contiene solo partes de fecha u hora.
mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
+---------------------------------------------------------+
| STR_TO_DATE('04/31/2004', '%m/%d/%Y') |
+---------------------------------------------------------+
| 2004-04-31 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
SUBDATE (fecha, INTERVAL expr unidad) y SUBDATE (expr, días)
Cuando se invoca con la forma INTERVALO del segundo argumento, SUBDATE () es un sinónimo de DATE_SUB (). Para obtener información sobre el argumento de la unidad INTERVAL, consulte la discusión sobre DATE_ADD ().
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_SUB('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1997-12-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| SUBDATE('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1997-12-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
SUBTIME (expr1, expr2)
SUBTIME () devuelve expr1. expr2 expresado como un valor en el mismo formato que expr1. expr1 es una expresión de hora o fecha y hora, y expr2 es una hora.
mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999',
-> '1 1:1:1.000002');
+---------------------------------------------------------+
| SUBTIME('1997-12-31 23:59:59.999999'... |
+---------------------------------------------------------+
| 1997-12-30 22:58:58.999997 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
SYSDATE ()
Devuelve la fecha y hora actuales como un valor en formato 'AAAA-MM-DD HH: MM: SS' o AAAAMMDDHHMMSS, dependiendo de si la función se utiliza en una cadena o en un contexto numérico.
mysql> SELECT SYSDATE();
+---------------------------------------------------------+
| SYSDATE() |
+---------------------------------------------------------+
| 2006-04-12 13:47:44 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIEMPO (expr)
Extrae la parte de tiempo de la expresión time o datetime expr y la devuelve como una cadena.
mysql> SELECT TIME('2003-12-31 01:02:03');
+---------------------------------------------------------+
| TIME('2003-12-31 01:02:03') |
+---------------------------------------------------------+
| 01:02:03 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIMEDIFF (expr1, expr2)
TIMEDIFF () devuelve expr1. expr2 expresado como valor de tiempo. expr1 y expr2 son expresiones de hora o fecha y hora, pero ambas deben ser del mismo tipo.
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
-> '1997-12-30 01:01:01.000002');
+---------------------------------------------------------+
| TIMEDIFF('1997-12-31 23:59:59.000001'..... |
+---------------------------------------------------------+
| 46:58:57.999999 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIMESTAMP (expr), TIMESTAMP (expr1, expr2)
Con un solo argumento, esta función devuelve la expresión de fecha o fecha y hora expr como un valor de fecha y hora. Con dos argumentos, agrega la expresión de hora expr2 a la expresión de fecha o fecha y hora expr1 y devuelve el resultado como un valor de fecha y hora.
mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
| TIMESTAMP('2003-12-31') |
+---------------------------------------------------------+
| 2003-12-31 00:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIMESTAMPADD (unidad, intervalo, datetime_expr)
Agrega el intervalo de expresión de entero a la expresión de fecha o fecha y hora datetime_expr. La unidad del intervalo viene dada por el argumento de la unidad, que debe ser uno de los siguientes valores: FRAC_SECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MES, QUARTER o YEAR.
El valor de la unidad se puede especificar utilizando una de las palabras clave como se muestra, o con un prefijo de SQL_TSI_. Por ejemplo, DAY y SQL_TSI_DAY son legales.
mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
+---------------------------------------------------------+
| TIMESTAMPADD(MINUTE,1,'2003-01-02') |
+---------------------------------------------------------+
| 2003-01-02 00:01:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIMESTAMPDIFF (unidad, datetime_expr1, datetime_expr2)
Devuelve la diferencia de números enteros entre las expresiones de fecha o fecha y hora datetime_expr1 y datetime_expr2. La unidad del resultado viene dada por el argumento de la unidad. Los valores legales para unit son los mismos que los enumerados en la descripción de la función TIMESTAMPADD ().
mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+---------------------------------------------------------+
| TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIME_FORMAT (hora, formato)
Se usa como la función DATE_FORMAT (), pero la cadena de formato puede contener especificadores de formato solo para horas, minutos y segundos.
Si el valor de tiempo contiene una parte de la hora que es mayor que 23, los especificadores de formato de% H y% k horas producen un valor mayor que el rango habitual de 0..23. Los demás especificadores de formato de hora producen el valor de hora módulo 12.
mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
+---------------------------------------------------------+
| TIME_FORMAT('100:00:00', '%H %k %h %I %l') |
+---------------------------------------------------------+
| 100 100 04 04 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIME_TO_SEC (hora)
Devuelve el argumento de tiempo, convertido a segundos.
mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
| TIME_TO_SEC('22:23:00') |
+---------------------------------------------------------+
| 80580 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Fecha)
Dada una fecha, devuelve un número de día (el número de días desde el año 0).
mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
| TO_DAYS(950501) |
+---------------------------------------------------------+
| 728779 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
UNIX_TIMESTAMP (), UNIX_TIMESTAMP (fecha)
Si se llama sin argumento, devuelve una marca de tiempo UNIX (segundos desde '1970-01-01 00:00:00' UTC) como un entero sin signo. Si se llama a UNIX_TIMESTAMP () con un argumento de fecha, devuelve el valor del argumento como segundos desde '1970-01-01 00:00:00' UTC. La fecha puede ser una cadena DATE, una cadena DATETIME, un TIMESTAMP o un número en el formato AAMMDD o YYYYMMDD.
mysql> SELECT UNIX_TIMESTAMP();
+---------------------------------------------------------+
| UNIX_TIMESTAMP() |
+---------------------------------------------------------+
| 882226357 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00') |
+---------------------------------------------------------+
| 875996580 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
UTC_DATE, UTC_DATE ()
Devuelve la fecha UTC actual como un valor en formato 'AAAA-MM-DD' o AAAAMMDD, dependiendo de si la función se usa en una cadena o en un contexto numérico.
mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+---------------------------------------------------------+
| UTC_DATE(), UTC_DATE() + 0 |
+---------------------------------------------------------+
| 2003-08-14, 20030814 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
UTC_TIME, UTC_TIME ()
Devuelve la hora UTC actual como un valor en formato 'HH: MM: SS' o HHMMSS, dependiendo de si la función se usa en una cadena o en un contexto numérico.
mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+---------------------------------------------------------+
| UTC_TIME(), UTC_TIME() + 0 |
+---------------------------------------------------------+
| 18:07:53, 180753 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
UTC_TIMESTAMP, UTC_TIMESTAMP ()
Devuelve la fecha y hora UTC actual como un valor en formato 'AAAA-MM-DD HH: MM: SS' o AAAAMMDDHHMMSS, dependiendo de si la función se utiliza en una cadena o en un contexto numérico.
mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
+---------------------------------------------------------+
| UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0 |
+---------------------------------------------------------+
| 2003-08-14 18:08:04, 20030814180804 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
WEEK (fecha [, modo])
Esta función devuelve el número de semana para la fecha. La forma de dos argumentos de WEEK () le permite especificar si la semana comienza el domingo o el lunes y si el valor de retorno debe estar en el rango de 0 a 53 o de 1 a 53. Si se omite el argumento de modo, el valor de la variable de sistema default_week_format se utiliza
Modo | Primer dia de la semana | Rango | La semana 1 es la primera semana. |
---|---|---|---|
0 | domingo | 0-53 | con un domingo de este año |
1 | lunes | 0-53 | con más de 3 días este año |
2 | domingo | 1-53 | con un domingo de este año |
3 | lunes | 1-53 | con más de 3 días este año |
4 | domingo | 0-53 | con más de 3 días este año |
5 | lunes | 0-53 | con un lunes en este año |
6 | domingo | 1-53 | con más de 3 días este año |
7 | lunes | 1-53 | con un lunes en este año |
mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20') |
+---------------------------------------------------------+
| 7 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
WEEKDAY (fecha)
Devuelve el índice de días de la semana para la fecha (0 = lunes, 1 = martes,. 6 = domingo).
mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
+---------------------------------------------------------+
| WEEKDAY('1998-02-03 22:23:00') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
WEEKOFYEAR (fecha)
Devuelve la semana del calendario de la fecha como un número en el rango de 1 a 53. WEEKOFYEAR () es una función de compatibilidad que es equivalente a WEEK (fecha, 3).
mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20') |
+---------------------------------------------------------+
| 8 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
AÑO (fecha)
Devuelve el año para la fecha, en el rango de 1000 a 9999, o 0 para el .zero. fecha.
mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03') |
+---------------------------------------------------------+
| 1998 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
YEARWEEK (fecha), YEARWEEK (fecha, modo)
Devuelve año y semana para una fecha. El argumento de modo funciona exactamente como el argumento de modo de WEEK (). El año en el resultado puede ser diferente del año en el argumento de fecha para la primera y última semana del año.
mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01') |
+---------------------------------------------------------+
| 198653 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Tenga en cuenta que el número de la semana es diferente de lo que la función WEEK () devolvería (0) para los argumentos opcionales 0 o 1, ya que WEEK () luego devuelve la semana en el contexto del año dado.
Para obtener más información, consulte el sitio web oficial de MySQL: funciones de fecha y hora