根据缩写显示当前月份值 (Oct) SQL 服务器

Display current month values based upon abbreviation (Oct) SQL Server

我目前正在处理一个看起来像这样的 table:

PersonID    Month
    1       Dec
    2       Jan
    3       Oct
    4       Oct
    5       Jan
    6       Feb

我想要 select 月份等于今天月份的行。因此,例如,对于本月,我想要所有等于 10 月的行,但显然这显示为 'Oct'。无论如何我可以做到这一点吗?

期望的输出

PersonID    Month
    3       Oct
    4       Oct

我想可能是

SELECT *,
CASE WHEN Month = 'Oct'
THEN '01-10-17'
ELSE 'N/A' END AS [Date]

FROM Person

WHERE Month([Date]) = Month(getdate())

但我不确定这个逻辑是否可靠。

SQL - http://sqlfiddle.com/#!9/a3f33/1

您可以使用:

SELECT *
FROM Person
WHERE FORMAT(GETDATE(), 'MMM') = Month;

Rextester Demo

备注:

如果不是 2012+,还有一个选择。

Select left(datename(MONTH,getdate()),3)

Returns

Oct

因此对于您的实际查询

Select *
  From  Person
  Where Month = left(datename(MONTH,getdate()),3)

这是使用 CONVERT 的另一种方法:

SELECT *
FROM Person
WHERE Month = Convert(char(3), GetDate(), 0)