获取月数仅传递月份名称

时间:2015-01-02 03:31:47

标签: sql sql-server sql-server-2008

当我只知道月份名称时,我希望得到月份。 (如果月份名称1月应返回1)

我试过了。

SELECT DATEPART(MM,'january 01 2011')

但在这里我要通过整个日期值(2011年1月1日)。但我只需要通过月份名称。 (不使用'案例')

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:5)

您可以传递月份名称并附加01 2011(或您希望的其他日期+年份),如下所示:

@declare monthName varchar(20);
@set monthName = 'january';

SELECT DATEPART(MM,monthName+' 01 2011')

SELECT MONTH(monthName+' 01 2011')

答案 1 :(得分:0)

您也可以使用Case

DECLARE @month VARCHAR(15)='mar'

SELECT CASE @month
         WHEN 'Jan' THEN 1
         WHEN 'feb' THEN 2
         WHEN 'mar' THEN 3
         WHEN 'apr' THEN 4
         WHEN 'may' THEN 5
         WHEN 'jun' THEN 6
         WHEN 'jul' THEN 7
         WHEN 'aug' THEN 8
         WHEN 'sep' THEN 9
         WHEN 'oct' THEN 10
         WHEN 'nov' THEN 11
         WHEN 'dec' THEN 12
       END 

答案 2 :(得分:0)

@declare monthName varchar(20);
@set monthName = 'JUNE';

SELECT DATEPART(MM,monthName+' 01 2014') //Monthname +'any date and year'