SQL सर्वर में, आप DATEADD()
. का उपयोग कर सकते हैं किसी दी गई तिथि में एक निर्दिष्ट समय अवधि जोड़ने के लिए कार्य करता है। आप इसका उपयोग किसी निर्दिष्ट समय अवधि को घटाने के लिए भी कर सकते हैं।
आप DATEADD()
. को भी जोड़ सकते हैं आवश्यकतानुसार दिनांक को प्रारूपित करने के लिए अन्य कार्यों के साथ। उदाहरण के लिए, आप '2020-10-03' ले सकते हैं, 10 साल जोड़ सकते हैं, फिर (बढ़े हुए) साल के घटक को वापस कर सकते हैं।
इस लेख में प्रदर्शित करने के लिए उदाहरण हैं।
सिंटैक्स
DATEADD()
. का सिंटैक्स इस तरह जाता है:
DATEADD (datepart , number , date )
जहां datepart
उस तारीख का हिस्सा है जिसे आप बढ़ाना चाहते हैं (या घटाना), number
datepart
को बढ़ाने की राशि है द्वारा, और date
वह तारीख है जिस दिन तक जोड़ा जाएगा।
उदाहरण 1
यहां एक तारीख में दस साल जोड़ने का एक बुनियादी उदाहरण दिया गया है:
SELECT DATEADD(year, 10, '2020-10-03') AS 'Future Date';
परिणाम:
+-------------------------+ | Future Date | |-------------------------| | 2030-10-03 00:00:00.000 | +-------------------------+
इस मामले में, वापसी मूल्य में समय घटक के साथ-साथ दिनांक भी शामिल है। ऐसा इसलिए है क्योंकि परिणाम डेटाटाइम . के रूप में दिया जाता है मूल्य। इस डेटा प्रकार के रूप में इसे वापस करने का कारण यह है कि हमने date
. के रूप में एक स्ट्रिंग अक्षर की आपूर्ति की है बहस। जब आप दिनांक के रूप में एक स्ट्रिंग अक्षर की आपूर्ति करते हैं, DATEADD()
एक डेटाटाइम . देता है मूल्य।
ऐसे मामलों में जहां आप स्ट्रिंग अक्षर की आपूर्ति नहीं करते हैं, वापसी मान date
के डेटा प्रकार के समान होता है बहस। उदाहरण के लिए, यदि आप एक datetime2 . प्रदान करते हैं तर्क, वापसी मान datetime2 . होगा ।
उदाहरण 2 - परिणाम स्वरूपित करना
हम उपरोक्त परिणाम ले सकते हैं और इसे FORMAT()
. के साथ प्रारूपित कर सकते हैं समारोह:
SELECT FORMAT(DATEADD(year, 10, '2020-10-03'), 'yyyy-MM-dd') AS 'yyyy-MM-dd', FORMAT(DATEADD(year, 10, '2020-10-03'), 'dd/MM/yyyy') AS 'dd/MM/yyyy', FORMAT(DATEADD(year, 10, '2020-10-03'), 'yyyy') AS 'yyyy', FORMAT(DATEADD(year, 10, '2020-10-03'), 'yy') AS 'yy';
परिणाम:
+--------------+--------------+--------+------+ | yyyy-MM-dd | dd/MM/yyyy | yyyy | yy | |--------------+--------------+--------+------| | 2030-10-03 | 03/10/2030 | 2030 | 30 | +--------------+--------------+--------+------+
लेकिन यह ध्यान रखना महत्वपूर्ण है कि FORMAT()
फ़ंक्शन अपना परिणाम एक स्ट्रिंग के रूप में देता है।
दूसरा विकल्प है CONVERT()
. का उपयोग करना परिणाम को तारीख . में बदलने के लिए डेटा प्रकार:
SELECT CONVERT(date, DATEADD(year, 10, '2020-10-03')) AS Converted;
परिणाम:
+-------------+ | Converted | |-------------| | 2030-10-03 | +-------------+
या आप YEAR()
. जैसे फ़ंक्शन का उपयोग कर सकते हैं , जो परिणाम को एक पूर्णांक के रूप में लौटाता है:
SELECT YEAR(DATEADD(year, 10, '2020-10-03')) AS 'Future Year';
परिणाम:
+---------------+ | Future Year | |---------------| | 2030 | +---------------+
उदाहरण 3 - तिथियां घटाना
आप दिनांक से घटाने के लिए ऋणात्मक संख्याओं का उपयोग कर सकते हैं:
SELECT DATEADD(year, -10, '2020-10-03') AS 'Earlier Date';
परिणाम:
+-------------------------+ | Earlier Date | |-------------------------| | 2010-10-03 00:00:00.000 | +-------------------------+
और निश्चित रूप से, आप पहले बताए गए तरीकों में से किसी का उपयोग करके इसे प्रारूपित कर सकते हैं।
उदाहरण 4 - सिस्टम तिथियां
जिस कंप्यूटर पर SQL सर्वर का इंस्टेंस चल रहा है, उस कंप्यूटर से वर्तमान दिनांक/समय वापस करने के लिए विभिन्न कार्यों का उपयोग करने के कुछ उदाहरण यहां दिए गए हैं।
SYSDATETIME()
SELECT SYSDATETIME() AS 'Current Date', DATEADD(year, 10, SYSDATETIME()) AS 'Future Date';
परिणाम:
+-----------------------------+-----------------------------+ | Current Date | Future Date | |-----------------------------+-----------------------------| | 2018-06-04 05:57:51.7297042 | 2028-06-04 05:57:51.7297042 | +-----------------------------+-----------------------------+
SYSDATETIMEOFFSET()
SELECT SYSDATETIME() AS 'Current Date', DATEADD(year, 10, SYSDATETIME()) AS 'Future Date';
परिणाम:
+--------------------------+--------------------------+ | Current Date | Future Date | |--------------------------+--------------------------| | 4/6/18 6:02:07 am +00:00 | 4/6/28 6:02:07 am +00:00 | +--------------------------+--------------------------+
जैसा कि उल्लेख किया गया है, ये परिणाम date
. के डेटा प्रकार का उपयोग करके लौटाए जाते हैं तर्क (क्योंकि वे स्ट्रिंग अक्षर नहीं हैं)।
आउटपुट को फ़ॉर्मेट करना
SELECT YEAR(SYSDATETIME()) AS 'Current Year', YEAR(DATEADD(year, 10, SYSDATETIME())) AS 'Future Year';
परिणाम:
+----------------+---------------+ | Current Year | Future Year | |----------------+---------------| | 2018 | 2028 | +----------------+---------------+
और जैसा कि उल्लेख किया गया है, यदि आप दिनांक को प्रारूपित करते हैं, तो इसे लागू फ़ंक्शन के लिए डेटा प्रकार में वापस कर दिया जाएगा। तो इस उदाहरण में, परिणाम int . के रूप में दिया जाता है . अगर हमने इसे FORMAT()
. के साथ फ़ॉर्मैट किया होता फ़ंक्शन, इसे एक स्ट्रिंग के रूप में वापस किया जाएगा।