উত্তর:
একটু হ্যাকি তবে কাজ করা উচিত:
SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime)))
আমি মনে করি আপনার যখন মাসের নম্বর থাকবে তখন মাসের নামটি পাওয়ার সেরা উপায়
Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )
অথবা
Select DateName( month , DateAdd( month , @MonthNumber , -1 ) )
SUBSTRING('JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ', (@intMonth * 4) - 3, 3)
মূল ছাড়াও
SELECT DATENAME(m, str(2) + '/1/2011')
তুমি এটি করতে পারো
SELECT DATENAME(m, str([column_name]) + '/1/2011')
এইভাবে আপনি একটি সারণীতে সমস্ত সারিগুলির জন্য নাম পান। যেখানে [কলাম_নাম] সংখ্যার মান 1 থেকে 12 এর মধ্যে একটি পূর্ণসংখ্যা কলাম প্রতিনিধিত্ব করে
2 কোনও পূর্ণসংখ্যার প্রতিনিধিত্ব করে, পরিচিতি স্ট্রিংয়ের মাধ্যমে আমি একটি তারিখ তৈরি করি যেখানে আমি মাসে বের করতে পারি। '/ 1/2011' কোনও তারিখ হতে পারে
আপনি যদি ভেরিয়েবলের সাথে এটি করতে চান
DECLARE @integer int;
SET @integer = 6;
SELECT DATENAME(m, str(@integer) + '/1/2011')
হিব্রু জাতীয় কিছু স্থানীয় ক্ষেত্রে, বছরের উপর নির্ভরশীল লিপ মাস রয়েছে যাতে এই ধরনের লোকেলের ত্রুটিগুলি এড়াতে আপনি নিম্নলিখিত সমাধানটি বিবেচনা করতে পারেন:
SELECT DATENAME(month, STR(YEAR(GETDATE()), 4) + REPLACE(STR(@month, 2), ' ', '0') + '01')
SQL সার্ভার 2012 থেকে শুরু করে আপনি ব্যবহার করতে পারেন বিন্যাসে এবং DATEFROMPARTS এই সমস্যা সমাধানের জন্য। (আপনি যদি অন্যান্য সংস্কৃতি থেকে মাসের নাম চান তবে পরিবর্তন করুন en-US
:)
select FORMAT(DATEFROMPARTS(1900, @month_num, 1), 'MMMM', 'en-US')
আপনি যদি তিন-অক্ষরের মাস চান:
select FORMAT(DATEFROMPARTS(1900, @month_num, 1), 'MMM', 'en-US')
আপনি যদি সত্যিই চান, আপনি এটির জন্য একটি ফাংশন তৈরি করতে পারেন:
CREATE FUNCTION fn_month_num_to_name
(
@month_num tinyint
)
RETURNS varchar(20)
AS
BEGIN
RETURN FORMAT(DATEFROMPARTS(1900, @month_num, 1), 'MMMM', 'en-US')
END
আজকের তারিখ থেকে কেবল চলতি মাসকে বিয়োগ করুন, তারপরে আপনার মাসের নম্বরটি যুক্ত করুন। তারপরে ডেটনাম ফাংশনটি পুরো নামটি 1 লাইনে দেওয়ার জন্য ব্যবহার করুন।
print datename(month,dateadd(month,-month(getdate()) + 9,getdate()))
এই একজন আমার পক্ষে কাজ করেছেন:
@MetricMonthNumber (some number)
SELECT
(DateName( month , DateAdd( month , @MetricMonthNumber - 1 , '1900-01-01' ) )) AS MetricMonthName
FROM TableName
@ লেইনফো এবং @ ভ্যালেন্টিনো ভ্রানকেনের উপরের পোস্ট থেকে। কেবলমাত্র একটি দ্রুত নির্বাচন করেছেন এবং এটি কাজ করে।
Declare @MonthNumber int
SET @MonthNumber=DatePart(Month,GETDATE())
Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )
Explaination:
MonthNumber
DatePart
যার জন্য রিটার্ন মাসের নম্বর Numberআমার জন্য কাজ করছি
SELECT MONTHNAME(<fieldname>) AS "Month Name" FROM <tablename> WHERE <condition>
আপনি এই মত তারিখ পেতে পারেন। যেমন: - ব্যবহারকারীদের সারণী
id name created_at
1 abc 2017-09-16
2 xyz 2017-06-10
আপনি এই মত মাসের নাম পেতে পারেন
select year(created_at), monthname(created_at) from users;
আউটপুট
+-----------+-------------------------------+
| year(created_at) | monthname(created_at) |
+-----------+-------------------------------+
| 2017 | september |
| 2017 | june |
মাসের নাম পাওয়ার জন্য এই বিবৃতিটি ব্যবহার করুন:
DECLARE @date datetime
SET @date='2015/1/4 00:00:00'
SELECT CAST(DATENAME(month,@date ) AS CHAR(3))AS 'Month Name'
এটি আপনাকে স্বল্প মাসের নাম দেবে। এটি পছন্দ: জানু, ফেব্রুয়ারি, মার্চ ইত্যাদি etc.
সমস্যা সমাধানের জন্য অন্যদের কাছ থেকে কিছু তথ্য ব্যবহার করে আমার সমাধান এখানে is
datename(month,dateadd(month,datepart(month,Help_HelpMain.Ticket_Closed_Date),-1)) as monthname
এসকিউএল সার্ভারে কোনও সিস্টেম নির্ধারিত ফাংশন নেই। তবে আপনি নিজের ব্যবহারকারী সংজ্ঞায়িত ফাংশন তৈরি করতে পারেন - একটি স্কেলার ফাংশন। আপনি আপনার ডাটাবেসের জন্য অবজেক্ট এক্সপ্লোরারগুলিতে স্কেলার ফাংশনগুলি খুঁজে পাবেন: প্রোগ্রামযোগ্যতা-> ফাংশন-> স্কেলার-মূল্যবান ফাংশন। নীচে, আমি সমস্ত একসাথে আনতে একটি টেবিল ভেরিয়েবল ব্যবহার করি।
--Create the user-defined function
CREATE FUNCTION getmonth (@num int)
RETURNS varchar(9) --since 'September' is the longest string, length 9
AS
BEGIN
DECLARE @intMonth Table (num int PRIMARY KEY IDENTITY(1,1), month varchar(9))
INSERT INTO @intMonth VALUES ('January'), ('February'), ('March'), ('April'), ('May')
, ('June'), ('July'), ('August') ,('September'), ('October')
, ('November'), ('December')
RETURN (SELECT I.month
FROM @intMonth I
WHERE I.num = @num)
END
GO
--Use the function for various months
SELECT dbo.getmonth(4) AS [Month]
SELECT dbo.getmonth(5) AS [Month]
SELECT dbo.getmonth(6) AS [Month]
আপনি মাসটি উত্পন্ন করতে এই জাতীয় একটি ক্রিয়াকলাপ তৈরি করতে পারেন এবং dro.fn_GetMonthFromDate (তারিখ_পঞ্জি) টি মাসের FROM টেবিলের নাম হিসাবে নির্বাচন করুন
/****** Object: UserDefinedFunction [dbo].[fn_GetMonthFromDate] Script Date: 11/16/2018 10:26:33 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fn_GetMonthFromDate]
(@date datetime)
RETURNS varchar(50)
AS
BEGIN
DECLARE @monthPart int
SET @monthPart = MONTH(@date)
IF @monthPart = 1
BEGIN
RETURN 'January'
END
ELSE IF @monthPart = 2
BEGIN
RETURN 'February'
END
ELSE IF @monthPart = 3
BEGIN
RETURN 'March'
END
ELSE IF @monthPart = 4
BEGIN
RETURN 'April'
END
ELSE IF @monthPart = 5
BEGIN
RETURN 'May'
END
ELSE IF @monthPart = 6
BEGIN
RETURN 'June'
END
ELSE IF @monthPart = 7
BEGIN
RETURN 'July'
END
ELSE IF @monthPart = 8
BEGIN
RETURN 'August'
END
ELSE IF @monthPart = 9
BEGIN
RETURN 'September'
END
ELSE IF @monthPart = 10
BEGIN
RETURN 'October'
END
ELSE IF @monthPart = 11
BEGIN
RETURN 'November'
END
ELSE IF @monthPart = 12
BEGIN
RETURN 'December'
END
RETURN NULL END
সবচেয়ে সহজ উপায় হচ্ছে ফাংশনটি কল করা MONTHNAME(your_date)
। আপনার_সামগ্রী আপনার টেবিল ক্ষেত্রগুলির একটি থেকে স্থির মান বা মান হতে পারে।
মাসে নির্বাচন করুন (কনক্যাট ('1970 -', [মাস ইন্ট ভ্যাল] ',' - 01 '))
উদাহরণস্বরূপ- নির্বাচন করুন নির্বাচন করুন (কনটাক্ট ('1970 -', 4, '- 01'))
উত্তর- এপ্রিল