2011-10-20 10 views
8

क्या नियमित डेटाटाइम के साथ SQL Server 2008 में महीने/वर्ष को सहेजना संभव है? मुझे टाइम स्टैम्प की आवश्यकता नहीं है और कॉलम अद्वितीय मो/वर्ष संयोजनों को स्टोर करने जा रहा है (यानी 10-11, 11-11, 12-11, आदि।)।SQL सर्वर 2008 में केवल महीना और वर्ष संग्रहीत करना?

कोई सिफारिशें?

उत्तर

14

लक्षित उपयोग जानने के बिना, यह सही ढंग से सलाह देने के लिए संभव नहीं है। हालांकि, महीने और साल को कम से कम तीन तरीकों से आसानी से किया जाता है:

  • दिनांक फ़ील्ड का उपयोग करें, लेकिन हमेशा मध्यरात्रि में महीने के पहले दिन में स्टोर करें; तो हमेशा कस्टम
  • ऐड पूर्णांक वर्ष और माह क्षेत्रों प्रदर्शन के लिए दिनांक फ़ील्ड प्रारूप, और एक तारीख
  • एक पूर्णांक क्षेत्र जहां आप इसे साल के रूप में सांकेतिक शब्दों में बदलना जोड़ने विभाजित करके उन्हें पॉप्युलेट * 100 + महीने या कुछ अन्य उपयोगी योजना
+1

ध्यान दें कि wallyk [दिनांक डेटा प्रकार] का उल्लेख है (http://msdn.microsoft.com/en-us/library/bb630352% 28v = SQL.100% 29.aspx) अपने पहले विकल्प में। यह एक डेटाटाइम क्षेत्र से अलग है। इन तीनों विकल्पों में से बहुत सारे अर्थ बहुत समझ में आते हैं। –

2

एसक्यूएल सर्वर डेटाटाइम डेटा को पूरी तरह से स्टोर करेगा (वर्ष-महीने-घंटे का समय: मिनट: सेक। मिलिसीसेक) इससे कोई फर्क नहीं पड़ता।

जब आप अपनी तिथियां संग्रहीत करते हैं, तो आप दिन का पहला दिन बना सकते हैं। जब आप अपनी क्वेरी करते हैं तो बस तारीखों को प्रारूपित करें।

http://www.sql-server-helper.com/tips/date-formats.aspx

1

आप केवल डेटटाइम कॉलम में वर्ष और महीने स्टोर नहीं कर सकते हैं। खैर, आप क्या कर सकते हैं डिफ़ॉल्ट मूल्यों का डिफ़ॉल्ट है। यानी: 2011.10.1.1, 2011.11.1.1 इस तरह।

या आप इसे स्ट्रिंग के रूप में स्टोर कर सकते हैं।

1
SQLServer 2008 और के बाद से

:

DatePart (महीने, MyDate):

एक Date स्तंभ के रूप में सहेजें और यह सुनिश्चित करें मूल्य हमेशा महीने के पहले है बनाने के लिए निम्नलिखित जाँच बाधा जोड़ने <> DatePart (महीने, DATEADD (दिन, -1, MyDate))

+2

मुझे यह दृष्टिकोण पसंद है, लेकिन मुझे लगता है कि एक सरल चेक बाधा 'DAY (MyDate) = 1' है। – Sam