我将月份存储在SQL Server中为1,2,3,4,…12。我想把它们显示为一月,二月等。在SQL Server中有一个函数像MonthName(1) = 1月?如果可能的话,我尽量避免使用CASE语句。
当前回答
除了原来的
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 monthname(curdate());
OR
select monthname('2013-12-12');
to_char(to_date(V_MONTH_NUM,'MM'),'MONTH')
其中V_MONTH_NUM是月份号
SELECT to_char(to_date(V_MONTH_NUM,'MM'),'MONTH') from dual;
除了原来的
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 DateName( month , DateAdd( month , @MonthNumber , -1 ))
您可以使用内置的CONVERT函数
select CONVERT(varchar(3), Date, 100) as Month from MyTable.
这将显示一个月的前3个字符(JAN,FEB等)。
推荐文章
- 有人可以对SQL查询进行版权保护吗?
- 如何知道MySQL表最近一次更新?
- 如何转储一些SQLite3表的数据?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- MySQL OR与IN性能
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?