Reputation: 5471
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:
query:
But I'm not sure how to go about it.. any help would be appreciated :)
EDIT:
Maybe I was unclear.. if todays date = '2012-01-18' I need it to find results if today's date is between the date range of date1 and date2.. So date1 may be '2012-01-04' and date2 may be '2012-01-21'.. so if todays date falls between or on those dates, a result is returned..
Upvotes: 8
Views: 29658
Reputation: 3852
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.
Upvotes: 0
Reputation: 341
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 :)
Upvotes: 2
Reputation: 2294
Try this,
SELECT * FROM events
WHERE date1<='2012-01-19'
AND date2>='2012-01-18'
Upvotes: 1
Reputation: 24610
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.
Upvotes: 1
Reputation: 1680
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
Upvotes: -2
Reputation: 65264
SELECT * FROM events
WHERE date1<='2012-01-18'
AND date2>='2012-01-18'
Upvotes: 18