A função CURDATE não funciona corretamente para a adição de dias que extrapolam o calendário. Como exemplo, a instrução a seguir retornar uma data inexistente:

// acrescentando 120 dias a data atual
 > SELECT CURDATE()+120;
 > 20071325

Para resolver isso é usada uma outra função chamada DATE_ADD, responsável pela soma correta de dias em uma determinada data:

// acrescentando 120 dias a data atual
 > SELECT DATE_ADD(CURDATE(), INTERVAL 120 DAY);
 > 2008-04-03

O mesmo pode ser feito para subtrair dias de uma data com a função DATE_SUB.