मारियाडीबी में, TRUNCATE()
एक अंतर्निहित संख्यात्मक फ़ंक्शन है जो किसी दिए गए नंबर को दशमलव स्थानों की दी गई संख्या में छोटा कर देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TRUNCATE(X,D)
जहां X
छोटा करने का मान है, और D
निर्दिष्ट करता है कि इसे कितने दशमलव स्थानों तक छोटा करना है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT TRUNCATE(1.25817, 2);
परिणाम:
+----------------------+ | TRUNCATE(1.25817, 2) | +----------------------+ | 1.25 | +----------------------+
यहाँ कुछ और हैं:
SELECT
TRUNCATE(1.25817, 1),
TRUNCATE(1.25817, 2),
TRUNCATE(1.25817, 3),
TRUNCATE(1.25817, 4);
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
TRUNCATE(1.25817, 1): 1.2 TRUNCATE(1.25817, 2): 1.25 TRUNCATE(1.25817, 3): 1.258 TRUNCATE(1.25817, 4): 1.2581
नकारात्मक दशमलव स्थान
यदि आवश्यक हो तो दूसरा तर्क ऋणात्मक मान हो सकता है। ऋणात्मक मान पास करने से अंक बाईं ओर हो जाते हैं दशमलव स्थान का शून्य हो जाना।
उदाहरण:
SELECT TRUNCATE(5824.17, -2);
परिणाम:
+-----------------------+ | TRUNCATE(5824.17, -2) | +-----------------------+ | 5800 | +-----------------------+
की तुलना में ROUND()
TRUNCATE()
फ़ंक्शन ROUND()
. से भिन्न है समारोह। ROUND()
फ़ंक्शन कुछ उदाहरणों में संख्या को ऊपर और दूसरों में नीचे की ओर गोल करता है। TRUNCATE()
दूसरी ओर, फ़ंक्शन, बिना गोल किए केवल संख्या को छोटा कर देता है।
इस अंतर को प्रदर्शित करने के लिए यहां एक तुलना है:
SELECT
TRUNCATE(3.6789, 2),
ROUND(3.6789, 2);
परिणाम:
+---------------------+------------------+ | TRUNCATE(3.6789, 2) | ROUND(3.6789, 2) | +---------------------+------------------+ | 3.67 | 3.68 | +---------------------+------------------+
यह FLOOR()
. से भी अलग है फ़ंक्शन, जो सबसे बड़ा पूर्णांक मान देता है जो इसके तर्क से अधिक नहीं है। FLOOR()
ROUND()
. जैसे दूसरे तर्क को स्वीकार नहीं करता है और TRUNCATE()
do (यह वैसे भी केवल एक पूर्णांक लौटाता है)।
गैर-संख्यात्मक तर्क
जब हम एक गैर-संख्यात्मक तर्क प्रदान करते हैं तो यहां क्या होता है:
SELECT TRUNCATE('Ten', 'Two');
परिणाम:
+------------------------+ | TRUNCATE('Ten', 'Two') | +------------------------+ | 0 | +------------------------+ 1 row in set, 3 warnings (0.000 sec)
आइए चेतावनी देखें:
SHOW WARNINGS;
परिणाम:
+---------+------+------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------+ | Warning | 1292 | Truncated incorrect INTEGER value: 'Two' | | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | | Warning | 1292 | Truncated incorrect INTEGER value: 'Two' | +---------+------+------------------------------------------+
अवैध तर्क गणना
कॉलिंग TRUNCATE()
तर्कों की गलत संख्या के साथ, या बिना तर्क के त्रुटि उत्पन्न होती है:
SELECT TRUNCATE();
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।
और:
SELECT TRUNCATE(1, 2, 3);
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर '3)' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।