समस्या:
आप टी-एसक्यूएल में दी गई तारीख से 30 दिन पहले की तारीख प्राप्त करना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में Computer कॉलम में डेटा के साथ Id , Name , और PurchaseDate ।
| आईडी | <थ>नामखरीदारी की तारीख | |
|---|---|---|
| 1 | सोनी GX1000 | 2019-01-20 |
| 2 | सैमसंग LX2000 | 2019-04-15 |
| 3 | डेल K80 | 2019-08-30 |
आइए प्रत्येक कंप्यूटर का नाम और दिनांक 30 दिन पहले . प्राप्त करें इसकी खरीद की तारीख।
समाधान:
हम DATEADD() फ़ंक्शन का उपयोग किसी दिनांक से दिए गए दिनों की संख्या घटाने के लिए करेंगे।
SELECT Name,
DATEADD(day, -30, PurchaseDate)
AS BeforePurchaseDate;
FROM Computer;
ये रहा क्वेरी का नतीजा:
| नाम | खरीदने की तारीख से पहले |
|---|---|
| सोनी GX1000 | 2018-12-21 |
| सैमसंग LX2000 | 2019-03-16 |
| डेल K80 | 2019-07-31 |
चर्चा:
यदि आप SQL सर्वर में दिनांक या समय घटाना चाहते हैं, तो DATEADD() . का उपयोग करें समारोह। इसमें तीन तर्क लगते हैं। पहला तर्क दिनांक/समय इकाई है - हमारे उदाहरण में, हम दिन . निर्दिष्ट करते हैं इकाई।
अगला दिनांक या समय इकाई है मान . हमारे उदाहरण में, यह -30 . है , क्योंकि हम वर्तमान तिथि से 30 दिन दूर ले रहे हैं। याद रखें कि माइनस घटाना . को दर्शाता है मूल्य; इस चिन्ह के बिना, आप दी गई तिथि में जोड़ रहे हैं।
अंतिम तर्क वह तारीख है जिस पर हम काम कर रहे हैं; यह दिनांक/समय/डेटाटाइम कॉलम या कोई भी अभिव्यक्ति हो सकती है जो दिनांक या समय लौटाती है। हमारे उदाहरण में, हम PurchaseDate . का उपयोग करते हैं , एक date कॉलम।
फ़ंक्शन एक बदली हुई तारीख देता है। हमारे उदाहरण में, 'Dell K80' . नामक कंप्यूटर के लिए क्वेरी BeforePurchaseDate . में एक नई तारीख लौटाता है कॉलम। मूल तारीख '2019-08-30' 30 दिन पहले की तारीख से बदल दी गई है:'2018-07-31' .
आप DATEADD() . का उपयोग कर सकते हैं सभी दिनांक और समय डेटा प्रकारों के लिए कार्य करता है।