Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में VARCHAR को UNSIGNED INTEGER में कन्वर्ट करना

CAST() फंक्शन से VARCHAR को UNSIGNED INTEGER में बदलना

जब संख्यात्मक डेटा VARCHAR कॉलम में स्टोर होता है और उस पर गणना या सही सॉर्टिंग करनी हो, तो CAST() फंक्शन का उपयोग करें।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable868(Amount VARCHAR(100));

INSERT INTO DemoTable868 VALUES('781');
INSERT INTO DemoTable868 VALUES('990');
INSERT INTO DemoTable868 VALUES('1002');
INSERT INTO DemoTable868 VALUES('560');
INSERT INTO DemoTable868 VALUES('890');
INSERT INTO DemoTable868 VALUES('9890');
INSERT INTO DemoTable868 VALUES('8723');

मौजूदा डेटा (स्ट्रिंग के रूप में)

+--------+
| Amount |
+--------+
| 781    |
| 990    |
| 1002   |
| 560    |
| 890    |
| 9890   |
| 8723   |
+--------+

क्वेरी: कन्वर्ट करके डिसेंडिंग ऑर्डर में

SELECT CAST(Amount AS UNSIGNED) AS Amount 
FROM DemoTable868 
ORDER BY Amount DESC;

आउटपुट (सही न्यूमेरिक सॉर्टिंग)

+--------+
| Amount |
+--------+
| 9890   |
| 8723   |
| 1002   |
| 990    |
| 890    |
| 781    |
| 560    |
+--------+

महत्वपूर्ण बिंदु

  • UNSIGNED केवल नॉन-नेगेटिव इंटीजर के लिए (0 से 4294967295)
  • नेगेटिव नंबर्स के लिए SIGNED उपयोग करें
  • डेसीमल के लिए DECIMAL(10,2) या FLOAT उपयोग करें
  • CAST() ANSI SQL स्टैंडर्ड है, CONVERT() MySQL-विशिष्ट विकल्प है

वैकल्पिक सिंटैक्स

-- CONVERT का उपयोग
SELECT CONVERT(Amount, UNSIGNED) AS Amount FROM DemoTable868 ORDER BY Amount DESC;

-- शॉर्टकास्ट (MySQL विशिष्ट)
SELECT Amount + 0 AS Amount FROM DemoTable868 ORDER BY Amount DESC;

चेतावनी

अगर VARCHAR में नॉन-न्यूमेरिक कैरेक्टर हैं (जैसे '123abc'), तो कन्वर्जन के दौरान वे 0 या आंशिक मान बन सकते हैं। डेटा वैलिडेशन पहले करें।

  1. - MySQL में VARCHAR डेटा को DATE फॉर्मेट में बदलें

    STR_TO_DATE() से स्ट्रिंग को MySQL डेट फॉर्मेट में कनवर्ट करें VARCHAR कॉलम में संग्रहीत तारीख स्ट्रिंग (जैसे 31/01/2015) को MySQL DATE फॉर्मेट (YYYY-MM-DD) में बदलने के लिए STR_TO_DATE() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1989 ( DueDate varchar(20) ); Query OK,

  1. - C# में Decimal को 64-बिट अनसाइन्ड इंटीजर में बदलना

    उदाहरण 1: Decimal मान को UInt64 में बदलना using System; public class Demo { public static void Main() { Decimal val = 99.29m; Console.WriteLine(Decimal मान = + val); ulong res = Decimal.ToUInt64(val); Console.WriteLine(64-बिट अनसाइन्ड इंटीजर = + res); } } आ

  1. - C# में Decimal को समतुल्य 8-बिट अनसाइन्ड इंटीजर में बदलें

    Decimal.ToByte(Decimal) मेथड निर्दिष्ट Decimal मान को समतुल्य 8-बिट अनसाइन्ड इंटीजर (byte) में बदल देता है। मान 0 से 255 की सीमा में होना चाहिए; अन्यथा OverflowException फेंका जाता है। भिन्नात्मक भाग काट दिया जाता है (शून्य की ओर)। उदाहरण 1: वैध मान using System; public class Demo { public stat