mysql get difference between two dates code example

Example 1: mysql date diff

SELECT DATEDIFF(expr1,expr2) as difference_in_days;


select DATEDIFF('2020-05-15', '2020-05-10'); //returns 5
select DATEDIFF('2020-05-13', '2020-05-16'); //returns -3
select DATEDIFF('2020-06-30', '2020-05-30'); //returns 30

Example 2: mysql date between two dates

-- With implicit CAST
SELECT * FROM my_table 
	WHERE my_date BETWEEN '2021-06-01 01:12:00' AND '2021-06-30 23:59:59';
-- is EQUIVALENT to
SELECT * FROM my_table 
	WHERE my_date >= '2021-06-01 01:12:00' AND my_col <= '2021-06-30 23:59:59';

Example 3: mysql date between two dates

ex1:
SELECT * FROM `objects` 
WHERE  (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')

ex2:
WHERE 
   requireddate BETWEEN 
     CAST('2003-01-01' AS DATE) AND 
     CAST('2003-01-31' AS DATE);

Example 4: mysql query dates between two dates

select * from users 
where signup_date between '2020-05-01' and '2020-12-10 23:59:59';
// Important with the times, 
// otherwize you will not get all records from end date.
// Event if you only have date and no times in signup_date column

Example 5: mysql curdate between two dates

SELECT * FROM `table` WHERE active=0 AND CURDATE() between dateStart and dateEnd

Example 6: mysql compare work days

5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)