आप MySQL date_format
का उपयोग कर सकते हैं तारीख की जाँच करते समय कार्य करें।
उदाहरण के लिए:
select date_format('2016-05-18', '%m%d');
+-----------------------------------+
| date_format('2016-05-18', '%m%d') |
+-----------------------------------+
| 0518 |
+-----------------------------------+
1 row in set (0,01 sec)
तो, आप बस साधारण अंतराल के साथ जांच सकते हैं:आज है 0518
और 2 फरवरी और 31 मई के बीच:
पूरा उदाहरण:
desc mytable;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| date_from | char(4) | YES | | NULL | |
| date_to | char(4) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0,00 sec)
select * from mytable;
+-----------+---------+-------+
| date_from | date_to | price |
+-----------+---------+-------+
| 0901 | 0930 | 100 |
| 1001 | 0201 | 80 |
| 0202 | 0531 | 100 |
| 0601 | 0701 | 120 |
+-----------+---------+-------+
4 rows in set (0,00 sec)
नमूना क्वेरी:
select price, date_from, date_to from mytable where date_format(now(), '%m%d') between date_from and date_to;
+-------+-----------+---------+
| price | date_from | date_to |
+-------+-----------+---------+
| 100 | 0202 | 0531 |
+-------+-----------+---------+
1 row in set (0,01 sec)
संपादित करें :
@FelipeDuarte के उत्तर पर अपनी टिप्पणी पढ़ें... 10/01 (1 अक्टूबर) से 02/01 (फरवरी 1) की अवधि के लिए, हमें नए साल पर विचार करने की आवश्यकता है...
आप अवधि को दो भागों में विभाजित करके धोखा दे सकते हैं:10/01 से 12/31 और 01/01 से 02/01