यह फ़ंक्शन वही करना चाहिए जो आप चाहते हैं। यह MySQL पर बूलियन परिणामों को संख्यात्मक संदर्भ में 1 या 0 के रूप में मानने पर निर्भर करता है, इस प्रकार MAX
कॉल प्रभावी रूप से एक OR
बन जाता है सभी शर्तों के।
CREATE FUNCTION check_activity(project_id INT, check_date DATE)
RETURNS BOOLEAN
DETERMINISTIC
BEGIN
RETURN (SELECT MAX(check_date BETWEEN ActiveFrom AND ActiveTo) FROM projects WHERE ProjId = project_id);
END
SELECT check_activity(20, '2018-01-10'), check_activity(20, '2018-02-01')
आउटपुट
check_activity(20, '2018-01-10') check_activity(20, '2018-02-01')
1 0