I have a MySQL db and inside it a table called ProductMaster with 6 fields “Product_Id,Product_Name,Model,Opening_date,Closing_Date,Status”.
Opening_Date and Closing Date Can accept null values.So some records has values for this field
I have the below query to display records from this table.
"select Product_Id,Product_Name,Model from ProductMaster where Status=1"
Now I want to change the query to have a filter on the Opening_Date and Closing_Date
if they are not null
Ex : If a Record is having Opening_Date as 05/01/2009 and Closing Date as 05/30/2009
Then i want to check whether today is a date in between these two dates and if Yes ,Returns the records
If both field values are empty, Return Records
Can any one help me to frame the query ? Thanks in advance
The
WHEREpart of a query (the “WHEREclause”) is just a long boolean expression. What does this mean? That MySQL just wants it to return either true or false, which it understands as “Yes. Include this row in the results.” or “No. Don’t include this row in the results.”If I understand correctly, you want to do two things:
opening_dateandclosing_datearenullAnd you want #2 to only happen if #1 is true. Which could be expressed like:
Which would be evaluated as false if either #1 or #2 is false.
That can be translated as:
(opening_date IS NOT NULL) AND (closing_date IS NOT NULL)NOW() >= opening_date AND NOW <= closing_dateSo if we treat those two like the #1 and #2 in the expression we said we were going to use (
#1 AND #2) then we get:And that’s the
WHEREclause you need.