VARCHAR থেকে INT - মাইএসকিউএলে কাস্ট করুন


267

এর জন্য আমার বর্তমান তথ্য

SELECT PROD_CODE FROM `PRODUCT`

হয়

PROD_CODE
2
5
7
8
22
10
9
11

আমি চারটি ক্যোয়ারী চেষ্টা করেছি এবং কোনও কাজই হয়নি। ( রেফ )

SELECT CAST(PROD_CODE) AS INT FROM PRODUCT;

SELECT CAST(PROD_CODE AS INT) FROM PRODUCT;

SELECT CAST(PROD_CODE) AS INTEGER FROM PRODUCT;

SELECT CAST(PROD_CODE AS INTEGER) FROM PRODUCT;

সমস্ত নীচের মতো সিনট্যাক্স ত্রুটি নিক্ষেপ করুন:

আপনার এসকিউএল সিনট্যাক্সে আপনার একটি ত্রুটি রয়েছে; 'মাইক্রোসফ্ট সার্ভার সংস্করণের সাথে সঙ্গতিপূর্ণ ম্যানুয়ালটি পরীক্ষা করুন ডানদিকে') ব্যবহারের জন্য সঠিক সিনট্যাক্সের জন্য) লাইন 1 এ পণ্য লিমিটেড 0, 30 'থেকে INT হিসাবে

আপনার এসকিউএল সিনট্যাক্সে আপনার একটি ত্রুটি রয়েছে; ম্যানুয়ালটি পরীক্ষা করুন যা আপনার মাইএসকিউএল সার্ভার সংস্করণের সাথে সামঞ্জস্য করে ডান সিনট্যাক্সের জন্য 'INTEGER) কাছাকাছি প্রোডাক্ট লিমিটেড 0, 30' থেকে লাইন 1 এ ব্যবহার করতে

মাইএসকিউএলে পূর্ণসংখ্যায় ভারচর castালতে সঠিক বাক্য গঠন কী?

মাইএসকিউএল সংস্করণ: 5.5.16


এটি প্রতিটি প্রয়াসের জন্য কী ত্রুটির প্রতিবেদন করে? আপনার ইনপুট কি? এটা অনুমিত ক্যোয়ারী ব্যর্থ যদি ঢালাই ফলাফল সেট কোনো রেকর্ডের জন্য ব্যর্থ। কমপক্ষে, এটি স্কেল স্ট্যান্ডার্ড যা বলে, যদিও মাই এসকিএল স্ট্যান্ডার্ডে সুরক্ষা বিধিগুলি ভঙ্গ করার জন্য কুখ্যাত। এবং, রেকর্ডের জন্য, ২ য় এবং চতুর্থ তালিকাভুক্ত নমুনাগুলি সঠিক।
জোয়েল কোহর্ন

উত্তর:


551

কাস্ট ফাংশন এবং অপারেটরগুলিতে বর্ণিত হিসাবে :

ফলাফলের ধরণটি নিম্নলিখিত মানগুলির মধ্যে একটি হতে পারে:

  • BINARY[(N)]
  • CHAR[(N)]
  • DATE
  • DATETIME
  • DECIMAL[(M[,D])]
  • SIGNED [INTEGER]
  • TIME
  • UNSIGNED [INTEGER]

অতএব, আপনার ব্যবহার করা উচিত:

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT

7
স্বাক্ষরযুক্ত কাজ করছে is মাইএসকিউএল কখন থেকে ইন্টিজার ডেটাটাইপকে স্বাক্ষরবিহীন রূপান্তরিত করে?
লেনিন রাজ রাজাসেকরন

20
@ ইমেইলেনিন: কাস্টিংয়ের জন্য ডেটা টাইপগুলি কলামগুলির মতো নয়, যেমন ডেটা ব্যাখ্যা করতে কীভাবে অতিরিক্ত তথ্য প্রয়োজন যেমন উদাহরণস্বরূপ স্বাক্ষরিত হয় কি না।
অগাস্টাল

13
এই তথ্যের জন্য ধন্যবাদ। মাইএসকিউএল ডকুমেন্টেশন আমার জন্য বিশৃঙ্খল তাই এটি অনেক সাহায্য করে।
রকি

আমার ক্যাসেটের সাথে সমস্যা ছিল (নাম্বার কুল হিসাবে ডাবল (10,2) .. পরে আমি এটিকে ডেসিমাল (10,2) এ পরিবর্তন করেছি এবং এটি কাজ করেছে T
নাভা বোগাতে

নোট করুন যে মারিয়াডিবিতে CAST(PROD_CODE AS INT) কাজ করে ঠিক ।
পল স্পিগেল

56

বারচার ক্ষেত্রগুলি / মান বিন্যাসে কাস্ট করার জন্য সামান্য হ্যাক ব্যবহার করা যেতে পারে:

SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`

9
যখন কোনও সরল, নথিভুক্ত, সমর্থিত এবং প্রস্তাবিত সমাধান পাওয়া যায় তখন কেন কেউ এমন "হ্যাক" ব্যবহার করবেন?
উদয়পাল

31
@ ইজিগিয়াল টিএল; ডিআর: আপনি যে "হ্যাক" উল্লেখ করছেন এটি হ'ল একটি সরল, নথিভুক্ত এবং প্রস্তাবিত সমাধান। - - - - - - - - - - - - - - দীর্ঘ সংস্করণ : ম্যানুয়াল থেকে : To cast a string to a number, you normally need do nothing other than use the string value in numeric contextযদিও আমি +0পরিবর্তে ব্যবহার করতাম *1তত দ্রুত হয় faster
মাইন্ডউইন

8
@ ব্রায়ানস্টিনারের গ্রহণযোগ্য উত্তরটি পরিষ্কারভাবে দেখায় যে আরও ভাল শব্দার্থবিজ্ঞানের সাথে একটি সমাধান বিদ্যমান, তবে কখনও কখনও এটি কেবল সুবিধাজনক যে আদিম মানটি অন্য কোনও আদিমকে স্পষ্টভাবে কাস্ট করা হয়, বিশেষত স্ট্রিং এবং সংখ্যার ধরণের সংমিশ্রণের সময়। সুতরাং এ বৈশিষ্ট্যের অস্তিত্বের জন্য এলোমেলোভাবে প্রোগ্রামিং ভাষাগুলি ধাক্কা খাওয়াকে বরং অনুচিত বলে মনে হচ্ছে।
বি 12 টুস্টার

এই ধরণের হ্যাক ব্যবহার করবেন না! - খুব খারাপ অভ্যাস যে ফিরে অনেক পরে দান্ত দিয়া ফুটা করা হবে যখন কোড প্রত্যাবর্তন এইসব পূর্ণ এবং কঠিন
রাত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.