Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/12/2010, 16:10
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: MYSQL DATE_ADD error de sintaxis con MINUTES

Primero: Usa los manuales para las versiones que estás usando. Consultaste la página de la versión 4.x, cuando actualmente esta en producción la 5.1.x...
Como mínimo, deberías usar: http://dev.mysql.com/doc/refman/5.0/...functions.html, para acceder a una página en el mismo idioma en que estamos trabajando.

Segundo: Si te fijas bien, el "_" es parte del dibujo de la tabla en la página, y no parte de la unidad (¡!).

Tercero, si te vijas con atención, la columna donde dice MINUTES hace referencia al valor esperado para expr, dentro de los parámetros, mientras que MINUTE se refiere al valor que debe tener el parámetro type:

Cita:
DATE_ADD(date,INTERVAL expr type), DATE_SUB(date,INTERVAL expr type)

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
En el contexto de la explicación y los ejemplos del manual, el caracter "_" tiene el uso de un nexo que permite indicar más de una unidad de tiempo si y sólo si expr es una cadena en lugar de un valor entero:
Código MySQL:
Ver original
  1. mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;
  2.         -> '1998-01-01 00:00:00'
  3. mysql> SELECT INTERVAL 1 DAY + '1997-12-31';
  4.         -> '1998-01-01'
  5. mysql> SELECT '1998-01-01' - INTERVAL 1 SECOND;
  6.         -> '1997-12-31 23:59:59'
  7. mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
  8.     ->                 INTERVAL 1 SECOND);
  9.         -> '1998-01-01 00:00:00'
  10. mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
  11.     ->                 INTERVAL 1 DAY);
  12.         -> '1998-01-01 23:59:59'
  13. mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
  14.     ->                 INTERVAL '1:1' MINUTE_SECOND);
  15.         -> '1998-01-01 00:01:00'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)