我将月份存储在SQL Server中为1,2,3,4,…12。我想把它们显示为一月,二月等。在SQL Server中有一个函数像MonthName(1) = 1月?如果可能的话,我尽量避免使用CASE语句。
当前回答
在希伯来语等一些语言环境中,闰月取决于年份,因此为了避免在这些语言环境中出现错误,您可以考虑以下解决方案:
SELECT DATENAME(month, STR(YEAR(GETDATE()), 4) + REPLACE(STR(@month, 2), ' ', '0') + '01')
其他回答
除了原来的
SELECT DATENAME(m, str(2) + '/1/2011')
你可以这样做
SELECT DATENAME(m, str([column_name]) + '/1/2011')
通过这种方式,您可以获得表中所有行的名称。其中[column_name]表示包含数值1到12的整数列
2表示任何整数,通过联系字符串我创建了一个日期,我可以提取月份。'/1/2011'可以是任何日期
如果你想用变量
DECLARE @integer int;
SET @integer = 6;
SELECT DATENAME(m, str(@integer) + '/1/2011')
使用此语句将月份数值转换为月份名称。
SELECT CONVERT(CHAR(3), DATENAME(MONTH, GETDATE()))
下面是我利用别人的信息来解决问题的方法。
datename(month,dateadd(month,datepart(month,Help_HelpMain.Ticket_Closed_Date),-1)) as monthname
以下是我的工作:
CAST(GETDATE() AS CHAR(3))
要将月号转换为月名,请尝试以下步骤
declare @month smallint = 1
select DateName(mm,DATEADD(mm,@month - 1,0))