How to check if a date is between date1 and date2 using mysql?

前端 未结 6 2073
醉梦人生
醉梦人生 2021-01-03 03:49

I\'m trying to write a query that will check today\'s date against my table columns date1 and date2 in mysql/php.. This is what I\'m after:

\'events\' table:

相关标签:
6条回答
  • 2021-01-03 04:24

    Though there are many answers available to this question I would like to give my response regarding the same situation I faced.

    I am using php to query mysql database.

    first what I do is to convert the date in the mysql supported date format which is yyyy-mm-dd

    $date = new DateTime($date);
    $date=date_format($date, 'Y-m-d');
    

    in the query's where clause I use BETWEEN

    "'$date' BETWEEN start_date AND end_date"
    

    this works perfectly given the case described here.

    0 讨论(0)
  • 2021-01-03 04:30
    SELECT *
    FROM events
    WHERE date1 <= '2012-01-18'
    AND date2 >= '2012-01-18';
    

    This should get you started. You can use DATE(NOW()) to get today's date if you don't want to hardcode a date.

    0 讨论(0)
  • 2021-01-03 04:31

    If your referring to compare the date today is between a start and end date, I think you should use this:

    SELECT *
    FROM table
    WHERE '2014-08-20' >= start_date
    AND '2014-08-20' <= end_date
    

    Hope this helps :)

    0 讨论(0)
  • 2021-01-03 04:37
    SELECT * FROM events 
      WHERE date1<='2012-01-18'
      AND date2>='2012-01-18'
    
    0 讨论(0)
  • 2021-01-03 04:41

    Try this,

    SELECT * FROM events  
      WHERE date1<='2012-01-19'  
      AND date2>='2012-01-18'  
    
    0 讨论(0)
  • 2021-01-03 04:41

    Modified version of styfle's code

    $date1 = '2010-01-01'; // example min
    $date2 = '2015-01-01'; // example max
    $sql = "SELECT * FROM events WHERE $date1 >= '2012-01-18' AND $date2 <= '2012-01-18';";
    $result = mysql_query($sql) or die(mysql_error());
    if (mysql_num_rows($result) != 0) {
        // This date is equal to or within the range specified
    } else {
        // The date was not within the range specified
    }
    

    then you can have code executed based on the result

    0 讨论(0)
提交回复
热议问题