आपने शायद expiry_date
. को परिभाषित कर लिया है डेटाटाइम मान के रूप में, जिसका अर्थ है कि आपकी तुलनाएं गलत हैं। जैसे आपको उपयोग करने की आवश्यकता है
SELECT ... WHERE date(expiry_date) = date(now() + interval 7 day)
इसके बजाय (+7 दिन की रैपिंग को date()
. में नोट करें ऑपरेशन।
उदा.
दिनांक और डेटाटाइम फ़ील्ड वाली तालिका को देखते हुए:
+------------+---------------------+
| d | dt |
+------------+---------------------+
| 2013-06-28 | 2013-06-28 08:23:03 |
+------------+---------------------+
ध्यान दें कि तुलना कैसे सामने आती है:
mysql> select d=now(), d=date(now()), dt=now(), dt=date(now()), now() from x;
+---------+---------------+----------+----------------+---------------------+
| d=now() | d=date(now()) | dt=now() | dt=date(now()) | now() |
+---------+---------------+----------+----------------+---------------------+
| 0 | 1 | 0 | 0 | 2013-06-28 08:26:20 |
+---------+---------------+----------+----------------+---------------------+
1 row in set (0.00 sec)
तारीख बनाम वी.एस. datetime =false
तारीख बनाम तारीख =सच
डेटाटाइम बनाम। डेटाटाइम =झूठा (एचएच:मिमी:एसएस मेल नहीं खाता, इसलिए बराबर नहीं)
डेटाटाइम बनाम। दिनांक =असत्य (तारीख को yyyy-mm-hh 00:00:00 तक बढ़ा दिया गया है और hh:mm:ss मेल नहीं खा रहा है