Volver | Más funciones Importantes

Table of Contents

ADDDATE
ADDTIME
TIMESTAMPADD
DATE_ADD
PERIOD_ADD
GET_FORMAT


ADDDATE

Sintaxis:
ADDDATE(DATE,INTERVAL expr TYPE), ADDDATE(expr,days)
Descripción:
Cuando se utiliza con la forma INTERVAL del segundo argumento, ADDDATE() es sinónimo de DATE_ADD(). La función relacionada SUBDATE() es sinónimo de DATE_SUB(). Para información del argumento INTERVAL, consulte la discusión de DATE_ADD().
**Ejemplos**
 
a)Sumar 31 dias a las fechas.
a)SELECT HIRE_DATE, ADDDATE(HIRE_DATE, INTERVAL 31 DAY)
  FROM EMPLOYEES;
----RESULTADO----
+---------------------+-------------------------------------+
| HIRE_DATE           | ADDDATE(HIRE_DATE, INTERVAL 31 DAY) |
+---------------------+-------------------------------------+
| 1987-06-17 00:00:00 | 1987-07-18 00:00:00                 |
| 1989-09-21 00:00:00 | 1989-10-22 00:00:00                 |
| 1993-01-13 00:00:00 | 1993-02-13 00:00:00                 |
| 1990-01-03 00:00:00 | 1990-02-03 00:00:00                 |
| 1991-05-21 00:00:00 | 1991-06-21 00:00:00                 |
+---------------------+-------------------------------------+

ADDTIME

Sintaxis:
ADDTIME(expr1,expr2)
Descripción:
ADDTIME() añade expr2 a expr1 y retorna el resultado. expr1 es una expresión de fecha u hora y fecha, y expr2 es una expresión temporal.

**Ejemplo**
 
Añadir 2AS y 12 horas a los empleados que fueron contratados en 1997-08-20
SELECT FIRST_NAME, LAST_NAME, ADDTIME('1997-08-20 00:00:00', '2 12:00:00') HIRE_DATE
FROM EMPLOYEES
WHERE HIRE_DATE='1997-08-20';
----RESULTADO----
+------------+-----------+---------------------+
| FIRST_NAME | LAST_NAME | HIRE_DATE           |
+------------+-----------+---------------------+
| Laura      | Bissot    | 1997-08-22 12:00:00 |
| Peter      | Hall      | 1997-08-22 12:00:00 |
+------------+-----------+---------------------+
 


TIMESTAMPADD

Sintaxis:
TIMESTAMPADD(INTERVAL,int_expr,datetime_expr)
Descripción:
Suma la expresión entera int_expr a la expresión de fecha o de fecha/hora datetime_expr. Las unidades para int_expr se toman del argumento interval, que debe ser uno de los siguientes valores:
FRAC_SECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, o YEAR.
El valor interval puede especificarse usando una de las palabras claves que se muestran, o con un prefijo de SQL_TSI_. Por ejemplo, DAY o SQL_TSI_DAY son ambas legales.

**Ejemplos**
**A)**SELECT TIMESTAMPADD(MINUTE,5,'2014-02-02');
Devuelve-> '2014-02-02 00:05:00'
 
B)SELECT TIMESTAMPADD(MONTH,1,'2014-01-01');
Devuelve-> '2014-02-01'


DATE_ADD

Sintaxis:
DATE_ADD(DATE,INTERVAL expr TYPE), DATE_SUB(DATE,INTERVAL expr TYPE)
Descripción:
Estas funciones realizan operaciones aritméticas de fechas. date es un valor DATETIME o DATE especificando la fecha de inicio. expr es una expresión que especifica el intervalo a añadir o borrar de la fecha de inicio. expr es una cadena; puede comenzar con un '-' para intervalos negativos. type es una palabra clave que indica cómo debe interpretarse la expresión.
La palabra clave INTERVAL y el especificador type no son sensibles a mayúsculas.
La siguiente tabla muestra cómo se relacionan los argumentos type y expr:
type Value Expected expr Format
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
YEAR YEARS
SECOND_MICROSECOND 'SECONDS_MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES_MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS_MICROSECONDS'
HOUR:SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS_MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS_MONTHS'


MySQL permite cualquier delimitador en el formato expr. Los mostrados en la tabla son sugerencias. Si el argumento date es un valor DATE y sus cálculos involucran sólo las partes de YEAR, MONTH, y DAY (es decir, sin las partes de hora), el resultado es un valor DATE. En otro caso, el resultado es un valor DATETIME.
INTERVAL expr type se permite en cualquier lado del operador + si la expresión en el otro lado es una fecha o fecha y hora. Para el operador - , INTERVAL expr type se permite sólo en la parte derecha, ya que no tiene sentido restar una fecha de un intervalo.

**Ejemplos**
 
 
A)sumale un día a la fecha 1990-01-03
B)Muestra el nombre y el apellido de los trabajadores contratados despues de sumarle 1 año a la fecha
1997-08-17.
C)Muestra el nombre y el apellido de los trabajadores contratados entre la suma de 1 año a estas dos
fechas 1994-08-17 y 1995-08-17
A)SELECT DATE_ADD('1990-01-03', INTERVAL 1 DAY);
----RESULTADO----
+----------------------------------------+
| DATE_ADD('1990-01-03', INTERVAL 1 DAY) |
+----------------------------------------+
| 1990-01-04                             |
+----------------------------------------+
B)SELECT FIRST_NAME, LAST_NAME
  FROM EMPLOYEES
  WHERE DATE_ADD('1997-08-17',INTERVAL 1 YEAR)<HIRE_DATE;
----RESULTADO----
+------------+------------+
| FIRST_NAME | LAST_NAME  |
+------------+------------+
| Diana      | Lorentz    |
| Luis       | Popp       |
| Guy        | Himuro     |
| Karen      | Colmenares |
| Kevin      | Mourgos    |
+------------+------------+
C)SELECT FIRST_NAME, LAST_NAME
  FROM EMPLOYEES
  WHERE DATE_ADD('1994-08-17',INTERVAL 1 YEAR)<HIRE_DATE &&
  DATE_ADD('1995-08-17',INTERVAL 1 YEAR)>HIRE_DATE;
----RESULTADO----
+------------+-----------+
| FIRST_NAME | LAST_NAME |
+------------+-----------+
| Matthew    | Weiss     |
| Jason      | Mallin    |
| Trenna     | Rajs      |
| Janette    | King      |
| Patrick    | Sully     |
+------------+-----------+
 
Si especifica un intervalo demasiado pequeño (no incluye todas las partes de intervalo que se esperarían de la palabra clave type), MySQL asume que ha dejado la parte más a la izquierda del valor del intervalo. Por ejemplo, si especifica un type de DAY_SECOND, se espera que el valor de expr tenga días, horas, minutos y segundos. Si especifica un valor como '1:10', MySQL asume que las partes de día y hora no se encuentran disponibles y que el valor representa minutos y segundos. En otras palabras, '1:10' DAY_SECOND se interpreta de forma que es equivalente a '1:10' MINUTE_SECOND. Esto es análogo a la forma en que MySQL interpreta valores TIME como representando tiempo transcurrido en lugar de la hora del día.
Si suma o borra de un valor de fecha algo que contenga una parte de la hora, el resultado se convierte automáticamente a valor fecha/hora.


PERIOD_ADD

Sintaxis:
PERIOD_ADD(P,N)
Descripción:
Añade N meses al período P, que se escribe en formato YYMM ó YYYYMM. Atención porque el período P no es un valor de fecha. Esta función devuelve un valor en el formato YYYYMM.

**Ejemplo**
 
 
Se añaden 2 meses al periodo 9801 (año=98; mes:01) y devuelve el valor '199803' (año=1998; mes;3)
SELECT PERIOD_ADD(9801,2);
 
----RESULTADO----
+--------------------+
| PERIOD_ADD(9801,2) |
+--------------------+
|             199803 |
+--------------------+


GET_FORMAT

Sintaxis:
GET_FORMAT(DATE | TIME | TIMESTAMP, 'EUR' | 'USA' | 'JIS' | 'ISO' | 'INTERNAL')
Definición:
Devuelve una cadena de formato. Esta función es útil en combinación con las funciones DATE_FORMAT() y STR_TO_DATE().
Los tres posibles valores para el primer argumento y los cinco para el segundo implican 15 posibles cadenas de formato (para los especificadores usados, ver la tabla en la descripción de la función DATE_FORMAT()).

**Ejemplo**
SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));
----RESULTADO----
+--------------------------------------------------+
| DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR')) |
+--------------------------------------------------+
| 03.10.2003                                       |
+--------------------------------------------------+
 
SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA'));
----RESULTADO----
+--------------------------------------------------+
| STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA')) |
+--------------------------------------------------+
| 2003-10-31                                       |
+--------------------------------------------------+

Llamada a función Resultado
GET_FORMAT(DATE,'USA') '%m.%d.%Y'
GET_FORMAT(DATE,'JIS') '%Y-%m-%d'
GET_FORMAT(DATE,'ISO') '%Y-%m-%d'
GET_FORMAT(DATE,'EUR') '%d.%m.%Y'
GET_FORMAT(DATE,'INTERNAL') '%Y%m%d'
GET_FORMAT(TIMESTAMP,'USA') '%Y-%m-%d-%H.%i.%s'
GET_FORMAT(TIMESTAMP,'JIS') '%Y-%m-%d%H:%i:%s'
GET_FORMAT(TIMESTAMP,'ISO') '%Y-%m-%d%H:%i:%s'
GET_FORMAT(TIMESTAMP,'EUR') '%Y-%m-%d-%H.%i.%s'
GET_FORMAT(TIMESTAMP,'INTERNAL') '%Y%m%d%H%i%s'
GET_FORMAT(TIME,'USA') '%h:%i:%s%p'
GET_FORMAT(TIME,'JIS') '%H:%i:%s'
GET_FORMAT(TIME,'ISO') '%H:%i:%s'
GET_FORMAT(TIME,'EUR') '%H.%i.%s'
GET_FORMAT(TIME,'INTERNAL') '%H%i%s'

El formato ISO se refiere a ISO 9075, no a ISO 8601.


<Anterior Home^ Siguiente>