Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2008 में आज से एक महीने पहले कैसे प्राप्त करें?

SQL Server 2008 में date है डेटा प्रकार, जिसमें कोई समय संलग्न नहीं है। इस प्रकार आप आसानी से कनवर्ट करके, फिर DateAdd . निष्पादित करके समय भाग को आसानी से हटा सकते हैं ।

SELECT DateAdd(month, -1, Convert(date, GetDate()));

यह एक date लौटाएगा डेटा प्रकार। इसे datetime होने के लिए बाध्य करने के लिए फिर से, आप बस एक और Convert जोड़ सकते हैं :

SELECT Convert(datetime, DateAdd(month, -1, Convert(date, GetDate())));

आपको datetime . में स्पष्ट रूपांतरण की आवश्यकता नहीं हो सकती है , हालांकि।

नोट:"आज से एक महीने पहले" को कई अलग-अलग तरीकों से परिभाषित किया जा सकता है। जिस तरह से यह SQL सर्वर में काम करता है वह पिछले महीने से उस दिन को वापस करना है जो वर्तमान महीने के समान दिन की संख्या के सबसे करीब है। इसका मतलब यह है कि 31 मार्च को चलने पर इस अभिव्यक्ति का परिणाम 28 फरवरी होगा। इसलिए, यदि आप इसके प्रभावों के बारे में स्पष्ट रूप से नहीं सोचते हैं, तो आपको कुछ परिदृश्यों में अपेक्षित परिणाम नहीं मिल सकते हैं, जैसे कि आपने एक प्रदर्शन किया- महीने की गणना कई बार, एक ही दिन को एक अलग महीने में प्राप्त करने की अपेक्षा (जैसे मार्च -> फरवरी -> जनवरी)।

SQL Fiddle पर लाइव डेमो देखें

डेमो प्रत्येक एक्सप्रेशन के मान और परिणामी डेटा प्रकार दिखाता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर:मैं एकाधिक पंक्ति मानों को अलग-अलग कॉलम में कैसे समूहित कर सकता हूं?

  2. तालिका में इस तरह से कैसे शामिल हों कि प्रत्येक रिकॉर्ड पिछले रिकॉर्ड से जुड़ जाए?

  3. बीसीपी/बल्क इंसर्ट बनाम टेबल-वैल्यूड पैरामीटर्स का प्रदर्शन

  4. अद्वितीय वृद्धिशील मानों के साथ तालिका में इंट कॉलम अपडेट करें

  5. बायां बाहरी जॉइन बाएं तालिका में मौजूद से अधिक रिकॉर्ड कैसे लौटा सकता है?