Volver

Table of Contents

PERIOD_DIFF
DATEDIFF
TIMEDIFF
TIMESTAMPDIFF
DAYOFMONTH
FROM_DAYS


PERIOD_DIFF

Sintaxis:
PERIOD_DIFF(P1,P2)
Definición:
Devuelve el número de meses entre los periodos P1 y P2. P1 y P2 deben estar en el formato YYMM o YYYYMM.
Los argumentos periodo P1 y P2 no son valores de fecha:

**Ejemplo**
SELECT PERIOD_DIFF(1402,201303);
 
----RESULTADO----
+--------------------------+
| PERIOD_DIFF(1402,201303) |
+--------------------------+
|                       11 |
+--------------------------+


DATEDIFF

Sintaxis:
DATEDIFF(expr,expr2)
Descripción:
DATEDIFF() devuelve el número de días entre la fecha inicial expr y la fecha final expr2. expr y expr2 son expresiones de fecha o de fecha y hora. Sólo las partes de fecha de los valores se usan en los cálculos.

**Ejemplos**
 
Dime los dias entre la fecha de 1987-06-17 y la fecha de 1997-02-20
A)SELECT DATEDIFF('1987-06-17','1997-02-20');
----RESULTADO----
+-------------------------------------+
| DATEDIFF('1987-06-17','1997-02-20') |
+-------------------------------------+
|                               -3536 |
+-------------------------------------+
B)SELECT FIRST_NAME, LAST_NAME, HIRE_DATE
  FROM EMPLOYEES
  WHERE DATEDIFF(CURDATE(),HIRE_DATE)>7000;
----RESULTADO----
+------------+-----------+---------------------+
| FIRST_NAME | LAST_NAME | HIRE_DATE           |
+------------+-----------+---------------------+
| Steven     | King      | 1987-06-17 00:00:00 |
| Neena      | Kochhar   | 1989-09-21 00:00:00 |
| Lex        | De Haan   | 1993-01-13 00:00:00 |
| Alexander  | Hunold    | 1990-01-03 00:00:00 |
| Bruce      | Ernst     | 1991-05-21 00:00:00 |
| Nancy      | Greenberg | 1994-08-17 00:00:00 |
+------------+-----------+---------------------+

TIMEDIFF

Sintaxis:
TIMEDIFF(expr, expr2)
Descripción:
TIMEDIFF() devuelve el tiempo entre la hora de inicio expr y la hora final expr2. expr y expr2 son expresiones de hora o de fecha/hora, pero ambas deben ser del mismo tipo.
Si pretendemos calcular el tiempo (horas) entre un tiempo anterior y otro posterior, el valor devuelto será negativo.

**Ejemplo**
SELECT TIMEDIFF('2000:01:01 00:00:00','2000:01:02 00:00:00');
 
----RESULTADO----
+-------------------------------------------------------+
| TIMEDIFF('2000:01:01 00:00:00','2000:01:02 00:00:00') |
+-------------------------------------------------------+
| -24:00:00                                             |
+-------------------------------------------------------+


TIMESTAMPDIFF

Sintaxis:
TIMESTAMPDIFF(INTERVAL,datetime_expr1,datetime_expr2)
Descripción:
Devuelve la diferencia entera entre las expresiones fecha o fecha/hora datetime_expr1 y datetime_expr2. Las unidades para el resultado vienen dadas por el argumento interval. Los valores legales para interval son los mismos que se mencionan en la descripción de la función TIMESTAMPADD().

**Ejemplos**
SELECT TIMESTAMPDIFF(WEEK,'2014-02-01','2014-05-15');
----RESULTADO----
+-----------------------------------------------+
| TIMESTAMPDIFF(WEEK,'2014-02-01','2014-05-15') |
+-----------------------------------------------+
|                                            14 |
+-----------------------------------------------+
 
SELECT TIMESTAMPDIFF(QUARTER,'2013-02-02','2014-02-02');
----RESULTADO----
+--------------------------------------------------+
| TIMESTAMPDIFF(QUARTER,'2013-02-02','2014-02-02') |
+--------------------------------------------------+
|                                                4 |
+--------------------------------------------------+


DAYOFMONTH

Sintaxis:
DAYOFMONTH(DATE)
Descripción:
Devuelve el día del mes para date, en el rango 1 a 31.

**Ejemplos**
 
A)dime que dia es para la fecha 1998-03-23
B)Dime los nombres de los empleados contratados el dia 15 del mes.
A)SELECT DAYOFMONTH('1998-03-23');
----RESULTADO----
+--------------------------+
| DAYOFMONTH('1998-03-23') |
+--------------------------+
|                       23 |
+--------------------------+
B)SELECT FIRST_NAME, LAST_NAME
  FROM EMPLOYEES
  WHERE DAYOFMONTH(HIRE_DATE)=15;
----RESULTADO----
+------------+-----------+
| FIRST_NAME | LAST_NAME |
+------------+-----------+
| Guy        | Himuro    |
| Randall    | Matos     |
| Gerald     | Cambrault |
| Louise     | Doran     |
+------------+-----------+
 


FROM_DAYS

Sintaxis:
FROM_DAYS(N)
Descripción:
Dado un número de días N, devuelve un valor DATE.
Hay que tener cuidado a la hora de usar la función FROM_DAYS() en fechas antiguas. No se pretende que se use con fechas anteriores al calendario Gregoriano (1582).
Para más información consulte "Qué calendario utiliza MySQL”.

**Ejemplo**
SELECT FROM_DAYS(735627);
Devuelve-> '2014-01-29'


<Anterior Home^ Siguiente>