在SQL Server查询中返回月份名称

Cas*_*gio 78 sql type-conversion sql-server-2008

使用SQL Server 2008,我有一个用于创建视图的查询,我试图显示一个月的名称而不是整数.

在我的数据库中,datetime它位于一个名为的列中OrderDateTime.返回日期的查询中的行是:

DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Run Code Online (Sandbox Code Playgroud)

这将返回一列年份和一列月份作为整数.我想返回月份名称(Jan, Feb, etc).我试过了:

CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,因为我得到了

'AS'附近的语法不正确

信息.我的查询的正确语法是什么?

Mik*_*son 148

这将为您提供月份的全名.

select datename(month, S0.OrderDateTime)
Run Code Online (Sandbox Code Playgroud)

如果你只想要前三个字母就可以使用它

select convert(char(3), S0.OrderDateTime, 0)
Run Code Online (Sandbox Code Playgroud)


nit*_*ins 18

你试过DATENAME(MONTH, S0.OrderDateTime)吗?


小智 12

更改:

CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Run Code Online (Sandbox Code Playgroud)

至:

CONVERT(varchar(3), DATENAME(MONTH, S0.OrderDateTime)) AS OrderMonth
Run Code Online (Sandbox Code Playgroud)


Jey*_*ash 7

试试这个:

SELECT LEFT(DATENAME(MONTH,Getdate()),3)
Run Code Online (Sandbox Code Playgroud)