मुझे डेटाबेस में एक वर्ष (उदाहरण: 1 9 88, 1 99 0 आदि) डालने की आवश्यकता है। जब मैंने दिनांक या डेटाटाइम डेटा प्रकार का उपयोग किया, तो यह त्रुटियां दिखा रहा है। मुझे किस डेटाटाइप का उपयोग करना चाहिए।एसक्यूएल डेटा टाइप - एक वर्ष कैसे स्टोर करें?
उत्तर
यदि आपको डेटाबेस में एक वर्ष स्टोर करने की आवश्यकता है, तो आप या तो एक इंटीजर डेटाटाइप का उपयोग करना चाहते हैं (यदि आप केवल मृत पर सेट हैं तो आप डेटटाइम का उपयोग भी कर सकते हैं वर्ष संग्रहित करना) या डेटटाइम डेटाटाइप (जिसमें उस तारीख को संग्रहीत करना शामिल होगा जो मूल रूप से 1/1/19 9 0 00:00:00 प्रारूप में है)।
बस एक साल, और कुछ नहीं? क्यों एक साधारण पूर्णांक का उपयोग नहीं करते?
ओह भगवान, सामान्य ज्ञान से – peter
अरे! आप चीजों को इतना आसान बनाने की कोशिश क्यों कर रहे हैं? हम एसओ सवालों से बाहर चलेगा! –
यदि आपको स्टोर करने की आवश्यकता है तो पूर्णांक का उपयोग करें वर्ष है। यदि आप सोचते हैं कि इस कॉलम
धन्यवाद, मेरी गलती – peter
नियमित 4 बाइट आईएनटी बड़ा रास्ता है, अंतरिक्ष की बर्बादी है!
आप यह नहीं कहते कि आप किस डेटाबेस का उपयोग कर रहे हैं, इसलिए मैं एक विशिष्ट डेटाटाइप की अनुशंसा नहीं कर सकता। हर कोई "पूर्णांक का उपयोग" कह रहा है, लेकिन अधिकांश डेटाबेस 4 बाइट्स पर पूर्णांक स्टोर करते हैं, जो आपको आवश्यकतानुसार अधिक है। आपको दो बाइट पूर्णांक (SQL सर्वर पर छोटा) का उपयोग करना चाहिए, जो अंतरिक्ष को बेहतर बनाएगा।
अधिकतर नहीं, एक int का उपयोग करके अंतरिक्ष बर्बाद करना एक छोटा डेटा प्रकार का उपयोग करने के लिए बेहतर है, क्योंकि अधिकांश आधुनिक प्रोसेसर अधिक कुशल प्रसंस्करण 4 होते हैं छोटे डेटा प्रकारों की तुलना में बाइट इंट्स (32 बिट)। – Ender
@ एन्डर, आप वास्तव में इन मानों के साथ गणित नहीं कर रहे हैं, यह एक स्टोर और लुकअप प्रक्रिया से अधिक है। यदि आप छोटे होते हैं तो आप राम में अधिक मूल्यों को स्टोर करने में सक्षम होंगे, यदि आप छोटे हैं, तो डिस्क से अधिक मूल्यों को पढ़ने में सक्षम होंगे। मुझे आपके विचारों का समर्थन करने वाले कोई भी लेख नहीं मिल सका। http://dba.stackexchange.com/q/4968 –
सभी प्रोग्राम अंत में मशीन कोड को संकलित करते हैं और संख्या रजिस्टरों को लोड की जाती है। आधुनिक सीपीयू आर्किटेक्चर में सभी रजिस्ट्रार 32 बिट या 64 बिट हैं। इसलिए आपकी आरडीबीएमएस प्रणाली को आपकी क्वेरी में शर्तों को पूरा करने के लिए तुलना करने के लिए उन नंबरों को रजिस्टरों में रखना होगा। और छोटे int और छोटे int के मामले में, इसे हर बार एक रूपांतरण करना होता है, जो समय लेने वाला होता है। आप मेरे बिंदु या आपके बिंदु का समर्थन करने वाला एक आधिकारिक लेख नहीं ढूंढ सकते हैं क्योंकि यह आमतौर पर सीपीयू और आईओ के बीच एक व्यापार बंद होता है क्योंकि int का उपयोग सूचकांक आकार में वृद्धि करेगा और अधिक आईओ – Ender
अरे, आप वर्ष() MySQL में डेटाटाइप का उपयोग कर सकते हैं यह दो अंकों या चार अंकों के प्रारूप में उपलब्ध है।
नोट: मान चार अंकों प्रारूप में अनुमति दी: 1901 2155. करने के लिए मान दो अंकों प्रारूप में अनुमति दी: 70 69, साल का प्रतिनिधित्व करने के लिए 1970 से 2069
के लिए MSSQL में एक "वर्ष" भंडारण आदर्श निर्भर करेगा आप इसके साथ क्या कर रहे हैं और उस "वर्ष" का अर्थ आपके आवेदन और डेटाबेस के लिए क्या होगा। ऐसा कहा जा रहा है कि यहां कुछ बातें हैं। एमएसएसक्यूएल में 2012 तक साल के लिए "डेटा टाइप" नहीं है। मैं SMALLINT का उपयोग करने की ओर झुकता हूं क्योंकि यह केवल 2 बाइट्स है (आपको 4 बाइट्स में से 2 की बचत करता है)। आपकी सीमा यह है कि आपके पास 32767 से अधिक वर्ष (SQL सर्वर 2008R2 के रूप में) नहीं हो सकता है। मुझे सच में नहीं लगता कि एसक्यूएल अब दस हजार साल के विकल्प का डेटाबेस होगा, अब अकेले 32767 को छोड़ दें। आप एमएसएसएलएल में वर्ष() फ़ंक्शन के रूप में आईएनटी को डेटा प्रकार "DATE" को एक आईएनटी में परिवर्तित कर सकते हैं। जैसे मैंने कहा, यह इस बात पर निर्भर करता है कि आपको डेटा कहां मिल रहा है और यह कहां जा रहा है, लेकिन SMALLINT बस ठीक होना चाहिए। INT अधिक होगा ... जब तक आपके ऊपर उल्लेखित कोई अन्य कारण नहीं है या यदि कोड आवश्यकताओं को आईएनटी फॉर्म (जैसे मौजूदा एप्लिकेशन के साथ एकीकृत करना) में इसकी आवश्यकता है। सबसे अधिक संभावना SMALLINT बस ठीक होना चाहिए।
संग्रहण इस मुद्दे का केवल एक हिस्सा हो सकता है। एक प्रश्न में इस मूल्य का उपयोग कैसे किया जाएगा?
क्या इसकी तुलना किसी अन्य दिनांक-समय डेटा प्रकार से की जा सकती है, या क्या सभी संबंधित पंक्तियों में संख्यात्मक मूल्य भी होंगे?
आप आवश्यकताओं में बदलाव से कैसे निपटेंगे? साल को एक छोटे से समय के टुकड़े के साथ बदलने के अनुरोध पर आप कितनी आसानी से प्रतिक्रिया दे सकते हैं? यानी वे अब क्वार्टर से टूटना चाहते हैं?
प्रारंभिक और बंद तिथियों (1/1/एक्स से 12/31/x) इत्यादि जैसी चीज़ों के साथ जुड़ने के लिए एक लुक-अप टेबल करके एक संख्यात्मक क्वेरी का उपयोग आसानी से किया जा सकता है।
- 1. रेल ऐप में वर्ष कैसे स्टोर करें
- 2. डेटाबेस में वर्ष महीने कैसे स्टोर करें?
- 3. एसक्यूएल सर्वर: बाइनरी डेटा कैसे स्टोर करें (उदा। वर्ड फ़ाइल)?
- 4. MySQL वर्ष टाइप
- 5. एसक्यूएल सर्वर: केवल पिछले वर्ष के लिए डेटा प्राप्त करें
- 6. एसक्यूएल डेटा टाइप नकारात्मक दशमलव
- 7. बहुभाषी डेटा कैसे स्टोर करें?
- 8. एसक्यूएल वर्तमान महीना/वर्ष प्रश्न
- 9. वर्ष
- 10. डेटा के समान "स्टोर" कैसे करें?
- 11. MySQL - AES_Encrypted डेटा को कैसे स्टोर करें?
- 12. क्यूटी/सी ++ - कॉन्फ़िगरेशन डेटा कैसे स्टोर करें
- 13. कोर डेटा (आईफोन) का उपयोग कर सीएलएलोकेशन कैसे स्टोर करें?
- 14. एसक्यूएल - इंटीजर टाइप - बिट
- 15. MySQL: एक क्षेत्र 'वर्ष'
- 16. छवियों को एक varbinary (अधिकतम) कॉलम में कैसे स्टोर करें?
- 17. एसक्यूएल का चयन करें * स्तंभ जहां वर्ष = 2010
- 18. Django में एसक्यूएल स्कीमा से डेटा मॉडल कैसे उत्पन्न करें?
- 19. डेटा संरचना को स्टोर/पुनर्प्राप्त करें
- 20. बाहरी भंडारण पर निजी डेटा स्टोर करें
- 21. वर्ष
- 22. एक combobox में पाठ कैसे टाइप करें?
- 23. SQLITE कस्टम डेटा टाइप?
- 24. स्टोर श्रेणीबद्ध कॉन्स्ट डेटा
- 25. MySQL में 'क्वेरी-सक्षम' एन्क्रिप्टेड डेटा कैसे स्टोर करें?
- 26. वर्तमान माह और वर्ष कैसे प्राप्त करें
- 27. वर्ष के दिन से वर्ष का सप्ताह प्राप्त करें
- 28. कोर डेटा स्टोर
- 29. टॉमकैट के साथ लगातार डेटा कहां/कैसे स्टोर करें?
- 30. XML कैसे करें 'टाइप करें'
** आलसी मत बनो और "केवल int का उपयोग करें"। ** अपने डेटा प्रकार को सही ढंग से आकार दें, दो बाइट int एक बेहतर विकल्प है।4 बाइट्स में 4 अंकों के वर्षों को संग्रहीत करके, आप बस डिस्क स्थान की तुलना में अधिक संसाधन बर्बाद कर रहे हैं। इस कॉलम के लिए आपके सिस्टम को दो बार कैश मेमोरी का उपयोग करके बोझ किया जाएगा, आईओ डेटा की मात्रा दोगुनी हो जाएगी। यह कोई ब्रेनर नहीं है, देखें: http://dba.stackexchange.com/q/4968 –