আমি কীভাবে @ তারিখকে রূপান্তর করতে পারি:
SET @dateb = dateadd(month, datediff(month, 0, getdate()) - 3, 0)
যেটি 2014-04-04
একটি পূর্ণসংখ্যার তারিখ হিসাবে প্রত্যাবর্তন করে201404
ধন্যবাদ
আমি কীভাবে @ তারিখকে রূপান্তর করতে পারি:
SET @dateb = dateadd(month, datediff(month, 0, getdate()) - 3, 0)
যেটি 2014-04-04
একটি পূর্ণসংখ্যার তারিখ হিসাবে প্রত্যাবর্তন করে201404
ধন্যবাদ
উত্তর:
সংস্করণ 2012 বা ততোধিক সংস্করণে আপনি format
কেবল বছর এবং মাস পেতে ফাংশনটি ব্যবহার করতে পারেন , তারপরে এটি কোনও int হিসাবে কাস্ট করতে পারেন।
২০১২ এর পূর্ববর্তী সংস্করণগুলিতে আপনি convert
ফাংশনটির সাথে ফর্ম্যাট করতে পারেন , তারপরে ইন্ট হিসাবে কাস্ট করুন।
declare @dateb datetime
set @dateb = getdate()
select cast(format(@dateb,'yyyyMM') as int) --2012 or higher
select cast(convert(varchar(6),@dateb,112) as int) -- all versions
সম্ভবত কিছুটা সাশ্রয়ী:
SELECT YEAR(@dateb)*100 + MONTH(@dateb);
এটি কি আপনার জন্য কৌশলটি করতে পারে?
set @dateb = cast(convert(varchar, dateadd(month, datediff(month, 0, getdate()) - 3, 0), 112) as int)
আহ দুঃখিত, আমি ভুলে গেছি, আপনারও একটি স্ট্রিং দরকার হবে। তাই এটা:
select cast(substring(convert(varchar, dateadd(month, datediff(month, 0, getdate()) - 3, 0), 112), 0, 7) as int)
অন্য পদ্ধতি:
DECLARE @PeriodToCalculate_DATE [DATE] ='2016-02-29'
SELECT
CAST(DATEPART(YYYY,@PeriodToCalculate_DATE) AS [CHAR](4))
+ RIGHT('0' + CAST(DATEPART(M,@PeriodToCalculate_DATE) AS [VARCHAR](2)),2)
+ RIGHT('0' + CAST(DATEPART(D,@PeriodToCalculate_DATE) AS [VARCHAR](2)),2);
দেয়: 20160229
FORMAT()
সাধারণত এড়ানো হবে । YMMV।