MySQL में EXTRACT(HOUR FROM datetime) फ़ंक्शन का उपयोग करके दिनांक-समय कॉलम से घंटा निकालें और शर्त लागू करें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> AdmissionDate DATETIME
-> );
Query OK, 0 rows affected (0.75 sec)
mysql> INSERT INTO DemoTable VALUES
-> ('2019-01-10 10:45:10'),
-> ('2019-02-12 20:50:00'),
-> ('2019-02-12 16:10:19');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+---------------------+ | AdmissionDate | +---------------------+ | 2019-01-10 10:45:10 | | 2019-02-12 20:50:00 | | 2019-02-12 16:10:19 | +---------------------+ 3 rows in set (0.00 sec)
घंटा 8 से 10 के बीच नहीं होने वाले रिकॉर्ड चुनना
mysql> SELECT * FROM DemoTable
-> WHERE EXTRACT(HOUR FROM AdmissionDate) NOT BETWEEN 8 AND 10;
आउटपुट
+---------------------+ | AdmissionDate | +---------------------+ | 2019-02-12 20:50:00 | -- घंटा 20 | 2019-02-12 16:10:19 | -- घंटा 16 +---------------------+ 2 rows in set (0.00 sec)
पहली पंक्ति (10:45) बाहर हुई क्योंकि घंटा 10 BETWEEN 8 AND 10 में शामिल है।
EXTRACT यूनिट विकल्प:
EXTRACT(YEAR FROM dt)EXTRACT(MONTH FROM dt)EXTRACT(DAY FROM dt)EXTRACT(HOUR FROM dt)EXTRACT(MINUTE FROM dt)EXTRACT(SECOND FROM dt)EXTRACT(DAY_MONTH FROM dt)- दिन और महीनाEXTRACT(YEAR_MONTH FROM dt)- वर्ष और महीना
वैकल्पिक: HOUR(AdmissionDate) - MySQL-विशिष्ट शॉर्टकट फ़ंक्शन।
प्रदर्शन: EXTRACT() या HOUR() इंडेक्स उपयोग को रोकता है। रेंज क्वेरी के लिए:
WHERE AdmissionDate < '2019-01-10 08:00:00' OR AdmissionDate >= '2019-01-10 11:00:00'