जब हम डेट से घंटा मान निकालने का प्रयास करते हैं, तो EXTRACT() फंक्शन चेतावनी के साथ आउटपुट 0 देगा:
mysql> SELECT EXTRACT(HOUR FROM '2017-10-20');
+---------------------------------+
| EXTRACT(HOUR FROM '2017-10-20') |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '2017-10-20' |
+---------+------+----------------------------------------------+
अब, जब हम डेट से मिनट मान निकालने का प्रयास करते हैं, तो EXTRACT() फंक्शन डेट से शताब्दी मान आउटपुट के रूप में देगा चेतावनी के साथ:
mysql> SELECT EXTRACT(MINUTE FROM '2017-10-20');
+-----------------------------------+
| EXTRACT(MINUTE FROM '2017-10-20') |
+-----------------------------------+
| 20 |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)
अब, जब हम डेट से सेकंड मान निकालने का प्रयास करते हैं, तो EXTRACT() फंक्शन वर्ष मान आउटपुट के रूप में देगा चेतावनी के साथ:
mysql> SELECT EXTRACT(SECOND FROM '2017-10-20');
+-----------------------------------+
| EXTRACT(SECOND FROM '2017-10-20') |
+-----------------------------------+
| 17 |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)
व्याख्या: MySQL डेट स्ट्रिंग 'YYYY-MM-DD' को संख्या 20171020 के रूप में पार्स करता है। जब समय यूनिट मांगी जाती है, तो यह इस संख्या के अंकों को समय भाग के रूप में व्याख्या करता है: HH=20, MM=17, SS=00 (लेकिन MM=10, DD=20 के कारण भ्रम होता है)।
CURDATE() के साथ समान परिणाम मिलेंगे।