SQL सर्वर में महीने के पहले दिन को वापस करने के लिए T-SQL का उपयोग करने के लिए नीचे तीन विकल्प दिए गए हैं।
यह चालू महीने का पहला दिन हो सकता है, या किसी दी गई तारीख के आधार पर महीने का पहला दिन हो सकता है।
विकल्प 1
इसे करने का एक तरीका इस प्रकार है:
DECLARE @date date;
SET @date = '2035-10-15';
SELECT DATEADD(dd, -( DAY( @date ) -1 ), @date);
परिणाम:
2035-10-01
इसमें तारीख को महीने की शुरुआत में वापस लाने के लिए कुछ टी-एसक्यूएल फ़ंक्शंस का उपयोग करना शामिल है।
DATEADD()
के बारे में अधिक जानकारी के लिए और DAY()
फ़ंक्शन, देखें DATEADD()
SQL सर्वर में उदाहरण और DAY()
SQL सर्वर में उदाहरण।
विकल्प 2
महीने का पहला दिन पाने के लिए यहां एक और विकल्प दिया गया है:
DECLARE @date date;
SET @date = '2035-10-15';
SELECT DATEADD(month, DATEDIFF(month, 0, @date), 0);
परिणाम:
2035-10-01 00:00:00.000
यहां, हमने DATEDIFF()
. को शामिल किया है हमारी गणना में कार्य करें।
हालाँकि हमने प्रारंभिक चर को date
. के रूप में घोषित किया है मान, परिणाम एक datetime
है मूल्य। हम CONVERT()
. का उपयोग कर सकते हैं या CAST()
परिणाम को date
में बदलने के लिए मूल्य:
DECLARE @date date;
SET @date = '2035-10-15';
SELECT CAST(DATEADD(month, DATEDIFF(month, 0, @date), 0) AS date);
परिणाम:
2035-10-01
विकल्प 3
यहां एक और विकल्प है:
DECLARE @date datetime;
SET @date = '2035-10-15';
SELECT @date - DAY( @date ) + 1;
परिणाम:
2035-10-01 00:00:00.000
विकल्प 2 के समान, परिणाम एक datetime
है मान, लेकिन इस बार ऐसा इसलिए है क्योंकि हमने वेरिएबल को datetime
. के रूप में घोषित किया है मूल्य। हालांकि, हम इसे date
. में बदलने के लिए समान व्यवहार कर सकते हैं मूल्य:
DECLARE @date datetime;
SET @date = '2035-10-15';
SELECT CAST(@date - DAY( @date ) + 1 AS date);
परिणाम:
2035-10-01
जिस कारण से हमने वेरिएबल को date
घोषित नहीं किया मान इसलिए है क्योंकि इसके परिणामस्वरूप एक त्रुटि होगी:
DECLARE @date date;
SET @date = '2035-10-15';
SELECT @date - DAY( @date ) + 1;
परिणाम:
Msg 206, Level 16, State 2, Line 3 Operand type clash: date is incompatible with int
ऐसा इसलिए है क्योंकि हम किसी date
. में एक पूर्णांक जोड़ने का प्रयास कर रहे हैं मूल्य, जो काम नहीं करता है। हालांकि, datetime
. में एक पूर्णांक जोड़ना value काम करती है, और इसीलिए हमने वेरिएबल को datetime
. के रूप में घोषित किया है ।