MySQL में CURDATE() फंक्शन से आज की तारीख प्राप्त करें और DATE() फंक्शन से डेटाइम कॉलम की तुलना करें।
सिंटैक्स
SELECT yourColumnName1, yourColumnName2, ..., DATE_FORMAT(yourDateColumn, '%Y-%m-%d') FROM yourTableName WHERE DATE(yourDateColumn) = CURDATE();
उदाहरण
टेबल बनाना
mysql> create table GmailSignIn ( -> UserId int, -> UserName varchar(200), -> DateOfSignIn datetime -> ); Query OK, 0 rows affected (1.56 sec)
रिकॉर्ड डालना (मान लें आज 2018-12-06 है)
mysql> insert into GmailSignIn values(222111,'John',now()); mysql> insert into GmailSignIn values(333222,'Johnson',curdate()); mysql> insert into GmailSignIn values(444333,'Carol',date_add(curdate(),interval 1 day)); mysql> insert into GmailSignIn values(555444,'David',date_add(curdate(),interval -1 day));
सभी रिकॉर्ड देखना
mysql> select *from GmailSignIn;
+--------+----------+---------------------+ | UserId | UserName | DateOfSignIn | +--------+----------+---------------------+ | 222111 | John | 2018-12-06 19:13:30 | | 333222 | Johnson | 2018-12-06 00:00:00 | | 444333 | Carol | 2018-12-07 00:00:00 | | 555444 | David | 2018-12-05 00:00:00 | +--------+----------+---------------------+
आज (2018-12-06) के रिकॉर्ड प्राप्त करना
mysql> select UserId, UserName, DateOfSignIn, DATE_FORMAT(DateOfSignIn, '%Y-%m-%d') -> from GmailSignIn where date(DateOfSignIn) = curdate();
+--------+----------+---------------------+---------------------------------------+ | UserId | UserName | DateOfSignIn | DATE_FORMAT(DateOfSignIn, '%Y-%m-%d') | +--------+----------+---------------------+---------------------------------------+ | 222111 | John | 2018-12-06 19:13:30 | 2018-12-06 | | 333222 | Johnson | 2018-12-06 00:00:00 | 2018-12-06 | +--------+----------+---------------------+---------------------------------------+
महत्वपूर्ण फंक्शन
| फंक्शन | विवरण |
|---|---|
| CURDATE() | वर्तमान तारीख लौटाता है (समय नहीं) |
| NOW() | वर्तमान तारीख और समय लौटाता है |
| DATE() | डेटाइम से केवल तारीख भाग निकालता है |
| DATE_FORMAT() | तारीख को विशिष्ट फॉर्मेट में प्रदर्शित करता है |
प्रदर्शन के लिए बेहतर क्वेरी (इंडेक्स उपयोग)
SELECT * FROM GmailSignIn WHERE DateOfSignIn >= CURDATE() AND DateOfSignIn < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
यह क्वेरी DateOfSignIn कॉलम पर इंडेक्स का उपयोग कर सकती है, जबकि DATE() फंक्शन इंडेक्स उपयोग को रोकता है।