MySQL में INTERVAL का उपयोग करके वर्तमान समय से 1 सप्ताह पहले के रिकॉर्ड प्राप्त करें।
सिंटैक्स
SELECT * FROM yourTableName WHERE yourDateColumn < NOW() - INTERVAL 1 WEEK;
उदाहरण
टेबल बनाना
mysql> create table DatesOfOneWeek ( -> ArrivalTime datetime -> ); Query OK, 0 rows affected (0.87 sec)
विभिन्न तारीखों के रिकॉर्ड डालना
mysql> insert into DatesOfOneWeek values(date_add(now(),interval 2 week)); -- भविष्य
mysql> insert into DatesOfOneWeek values('2018-11-04'); -- पुराना
mysql> insert into DatesOfOneWeek values('2018-11-25'); -- पुराना
mysql> insert into DatesOfOneWeek values(date_add(now(),interval -1 week)); -- ठीक 1 सप्ताह पहले
mysql> insert into DatesOfOneWeek values(date_add(now(),interval 1 week)); -- भविष्य
सभी रिकॉर्ड देखना
mysql> select *from DatesOfOneWeek;
+---------------------+ | ArrivalTime | +---------------------+ | 2018-12-20 18:11:02 | -- भविष्य | 2018-11-04 00:00:00 | -- 1 सप्ताह से पुराना | 2018-11-25 00:00:00 | -- 1 सप्ताह से पुराना | 2018-11-29 18:11:40 | -- 1 सप्ताह से पुराना | 2018-12-13 18:11:46 | -- भविष्य +---------------------+
1 सप्ताह से पुराने रिकॉर्ड प्राप्त करना
mysql> select *from DatesOfOneWeek where ArrivalTime < now() - interval 1 week;
+---------------------+ | ArrivalTime | +---------------------+ | 2018-11-04 00:00:00 | | 2018-11-25 00:00:00 | | 2018-11-29 18:11:40 | +---------------------+
अन्य समय अंतराल
-- 1 दिन पुराना WHERE date_col < NOW() - INTERVAL 1 DAY -- 1 महीना पुराना WHERE date_col < NOW() - INTERVAL 1 MONTH -- 1 साल पुराना WHERE date_col < NOW() - INTERVAL 1 YEAR -- 30 मिनट पुराना WHERE date_col < NOW() - INTERVAL 30 MINUTE
महत्वपूर्ण नोट्स
NOW()वर्तमान तारीख-समय लौटाता हैINTERVALMySQL-विशिष्ट सिंटैक्स है (मानक SQL नहीं)- केवल तारीख के लिए
CURDATE()उपयोग करें - बड़े टेबल पर इंडेक्स सुनिश्चित करें:
CREATE INDEX idx_date ON table(date_col)