为什么此查询当前月份名称返回错误的月份?

时间:2015-10-27 03:01:32

标签: sql-server tsql sql-function

为什么这个查询只给我" 1月"作为输出而不是当月?

select cast(datename(month,datepart(mm,getdate()))as char(15))     

2 个答案:

答案 0 :(得分:2)

摆脱DATEPART电话。 DATENAME的第二个参数应为datetime;你试图给它一个整数。

select cast(datename(month,getdate()) as char(15))

答案 1 :(得分:1)

要添加到Cory的解释,datepart(mm,getdate())会给你一个值10.再次将它提供给datename函数将其传递给1900年1月11日的日期'作为一个论点,因为值10从1900年1月1日起被视为10天。这就是为什么datename返回的月份是1月。

Demo