Sql server 为什么对当前月份名称的查询返回了错误的月份?

Sql server 为什么对当前月份名称的查询返回了错误的月份?,sql-server,tsql,sql-function,Sql Server,Tsql,Sql Function,为什么这个查询只给我“一月”作为输出,而不是当前月份 select cast(datename(month,datepart(mm,getdate()))as char(15)) 摆脱DATEPART调用DATENAME的第二个参数应该是datetime;你试图给它一个整数 select cast(datename(month,getdate()) as char(15)) 为了补充Cory的解释,datepart(mm,getdate())给您一个10的值。再次将其馈送到date

为什么这个查询只给我“一月”作为输出,而不是当前月份

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

摆脱
DATEPART
调用
DATENAME
的第二个参数应该是
datetime
;你试图给它一个整数

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

为了补充Cory的解释,
datepart(mm,getdate())
给您一个10的值。再次将其馈送到
datename
函数会将日期“1900年1月11日”作为参数传递给它,因为值10被视为从1900年1月1日起的10天。这就是为什么
datename
返回的月份是一月


很好的解释。知道了。谢谢