Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

307
Vistas
MYSQL: calcule los días del mes actual entre la fecha de inicio y la fecha de finalización

Por favor, ayuda con la siguiente declaración de problema en MYSQL:

tengo una fecha de inicio y una fecha de finalización. Necesito calcular la cantidad de días entre la fecha de inicio y la fecha de finalización para el mes actual y hasta la fecha actual.

Ejemplo 1:

 start_date = "2020-06-27" end_date = "2020-09-27" Since today's date is 2020-08-11 (11th Aug 2020). I need 11 as the output.

Ejemplo2:

 start_date = "2020-08-08" end_date = "2020-08-09" I need 2 as the output.

Ejemplo3:

 start_date = "2020-08-08" end_date = "2020-08-14" I need 4 as the output because current date is 11th Aug.

Lo he intentado, dateiff, period_diff pero aún no he tenido éxito. Por favor, buscando ayuda aquí.

Gracias por mirar la declaración del problema.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

creo que es esto:

 SELECT DATEDIFF( LEAST(DATE_FORMAT(NOW(),"%Y-%m-%d"),"2020-08-14"), GREATEST("2020-08-08",DATE_FORMAT(NOW(),"%Y-%m-01")) )+1;

La respuesta a tu segunda pregunta debe ser 2, supongo.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar las funciones de fecha de MySql con el mínimo () y el mayor () para ajustar los límites:

 select datediff( least(end_date, current_date), greatest(start_date, last_day(current_date - interval 1 month) + interval 1 day) ) + 1 difference from tablename

Ver la demostración .
Resultados:

 | difference | | ---------- | | 11 | | 2 | | 4 |
over 4 years ago · Santiago Trujillo Denunciar

0

Puede probar la función MONTH de MySQL con una combinación de DATEDIFF , algo así como

 select case WHEN (MONTH(startDate)!==MONTH(CURDATE()) && MONTH(endDate)!==MONTH(CURDATE())) THEN DATEDIFF(STR_TO_DATE(ADD_START_DATE_OF_MONTH,'%d,%m,%Y'),CURDATE()) AS days WHEN MONTH(startDate)!==MONTH(CURDATE()) THEN DATEDIFF(CURDATE(),STR_TO_DATE(endDate, '%m/%d/%Y')) AS days WHEN MONTH(endDate)!==MONTH(CURDATE()) THEN DATEDIFF(STR_TO_DATE(startDate, '%m/%d/%Y'), CURDATE()) AS days ELSE DATEDIFF(STR_TO_DATE(startDate, '%m/%d/%Y'), STR_TO_DATE(endDate, '%m/%d/%Y')) AS days

Todas las funciones de fecha y hora de mysql

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda