MySql

Sumar y restar fechas con mysql

Por : Jhons_1101
2016-05-27
Tags :
A veces nos topamos con la necesidad de hacer algun reporte por este estilo, "Necesito o requiero traer las fechas de pago anteriores a 30 Dias", bueno, supongamos que se podria hacer en Mysql con un BetWeen con la fecha dada y el mes anterior, Pues resulta que esto nos generaría un error en el mes de febero, y No queremos que nuestro aplicativo falle (Requerimos Calidad). Pues aqui les dejo una solucion muy eficaz que corregira ese error con un par de funciones internas de Mysql llamadas DATE_ADD(), DATE_SUB(). la cual nos permite Sumar DATE_ADD() o Restar DATE_SUB() según sea el caso un determinado numero de dias a la fecha pasada como parametro.

  • Sintaxis :
  • DATE_SUB(fecha1 , Intervalo a Sumar/Restar2 Tipo de Expresion a Ejecutar3 )

      1 --> Fecha
  • Determina la fecha a Evaluar, puede ser date o timestamp
    • 2 --> Intervalo a Sumar/Restar
  • Determina en números la cantidad a sumar o Restar Dependiendo de La expresion a Ejecutar
  • Ejemplo --> 30 Day, 1 Month
    • 3 --> Tipo de Expresion a Ejecutar
  • Determina que tipo de Suma o Resta queremos ejecutar, aqui la variedad de expresiones.
  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • compartir en facebook compartir en Google compartir en Twitter compartir en Blogger compartir como código embebido compartir la url

  • Opción 1 --> DATE_ADD
  • Supongamos que queremos consultar la fechafinContrato que acabe el mes siguiente
    
    CURDATE(): /* Nos devuelve la fecha actual del sistema. */
    
    SELECT * FROM contratos
    WHERE diaFinContrato >= CURDATE() 
    AND diaFinContrato <= DATE_ADD(CURDATE(), INTERVAL 30 DAY)
    /* Contratos que acaban el mes próximo */
    /* Fecha Inicial -->2015-03-11 */	/* Retorna       -->2015-04-11 */
    
    
  • Opción 1 --> DATE_SUB
  • Supongamos que queremos consultar la fechafinContrato con 30 dias menos a la actual en nuestra DB
    
    SELECT * FROM contratos
    WHERE diaFinContrato <= CURDATE() 
    AND diaFinContrato >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
    /* Contratos que acabaron el mes anterior */
    /* Fecha Inicial -->2015-04-11 */	/* Retorna       -->2015-03-11 */
    
    
    Si deseas mas información puedes pulsar el enlace para que le saques mayor provecho a esta función.


  • No olvides revisar la sección de Pantallazos para que veas el Ejemplo.




  • Si este contenido te fue útil, no olvides compartirlo en redes sociales, Considéralo. Puede ser la manera de agradecer!


    Agrega tu comentario...

    Puedes utilizar etiquetas <pre></pre>, <p></p>, <div></div>, + (Nombre usuario, para responderle a alguien)

    ormYGhp





    Este post no tiene comentarios, sé el primero en hacerlo

    Sumarle Dias a una fecha




    Unete al grupo de whatsApp +57 316 392 6456

    Sigue el grupo en facebook

    Siguenos.....