MySQL में Oracle के TRUNC(SYSDATE) (केवल दिनांक भाग) के समतुल्य DATE() या CURDATE() फ़ंक्शन हैं।
तुलना
| Oracle | MySQL | विवरण |
|---|---|---|
| TRUNC(SYSDATE) | CURDATE() | वर्तमान दिनांक (समय के बिना) |
| TRUNC(date_col) | DATE(date_col) | दिनांक-समय से केवल दिनांक भाग |
| SYSDATE | NOW() | वर्तमान दिनांक-समय |
उदाहरण
तालिका बनाएं और दिनांक-समय डेटा डालें:
mysql> CREATE TABLE DemoTable (PostingDate DATETIME);
mysql> INSERT INTO DemoTable VALUES
-> ('2019-10-20 12:02:45'), ('2018-10-20 12:02:45'),
-> ('2015-10-20 12:02:45'), ('2019-10-20 10:00:00');
वर्तमान दिनांक
mysql> SELECT CURDATE();
+------------+
| curdate() |
+------------+
| 2019-10-20 |
+------------+
आज की तिथि के रिकॉर्ड प्राप्त करें (समय अनदेखा करें)
mysql> SELECT * FROM DemoTable
-> WHERE DATE(PostingDate) = CURDATE();
परिणाम
+---------------------+
| PostingDate |
+---------------------+
| 2019-10-20 12:02:45 |
| 2019-10-20 10:00:00 |
+---------------------+
मुख्य फ़ंक्शन
CURDATE()- वर्तमान दिनांक (YYYY-MM-DD)DATE(datetime)- दिनांक-समय से दिनांक भाग निकालता हैNOW()- वर्तमान दिनांक-समयDATE(NOW())- CURDATE() के समान
प्रदर्शन टिप
इंडेक्स उपयोग के लिए फ़ंक्शन के बजाय रेंज क्वेरी बेहतर:
WHERE PostingDate >= CURDATE()
AND PostingDate < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
यह PostingDate पर इंडेक्स का उपयोग करने की अनुमति देता है।