如标题所述,我正在尝试做一些小功能以获取数据库中已有的日期值,并将其显示为YYYY-MMM(例如:2013-Nov)。 SQL Server。我尝试了DatePart,但一次只争论了一部分(不能做YYYY-MMM)。有什么建议将其保留为函数吗?

Create function fnYearMonth
(@InputDate date)
returns date
Begin
Return DatePart(YYYY-MMM, @inputdate)
End;

Select hiredate, dbo.fnYearMonth(hiredate) as ReviewDate
from employees
Order by ReviewDate

最佳答案

使用DATENAME

DECLARE @InputDate datetime
SELECT @InputDate = '2013-10-10 10:10:10'

DECLARE @output nvarchar(8);
SELECT @output = CAST(DatePart(YYYY, @InputDate) as nvarchar(4)) + '-' + CONVERT(nvarchar(3), datename(month, @InputDate))
SELECT @output;

结果:

2013年10月

编辑:
Create function fnYearMonth
(@InputDate date)
returns nvarchar(8)
Begin
Return CAST(DatePart(YYYY, @InputDate) as nvarchar(4)) + '-' + CONVERT(nvarchar(3), datename(month, @InputDate))
End;

07-25 21:16