SQL Server查询从字符串中的另一个月获取字符串中的上个月名称

时间:2018-05-23 11:45:32

标签: sql sql-server

我需要从给定的月份名称获取上个月的名称。

例如,我需要在6月的特定月份将上月作为5月。 没有约会。

我尝试了select CAST(Monthname-1 AS Varchar(max)) from table

3 个答案:

答案 0 :(得分:2)

因为"没有日期。"

您可以将扩充字符串{month name} + ' 01, 1980'转换为日期,然后执行日期计算

示例

 Select datename(MONTH,dateadd(MONTH,-1,convert(date,'June'+' 01,1980')))

如果2012 + 且可能是虚假数据...... try_convert()

 Select datename(MONTH,dateadd(MONTH,-1,try_convert(date,'June'+' 01,1980')))

<强>返回

May

答案 1 :(得分:1)

在您的开始日期添加1个月,然后使用DATENAME(month)获取其名称。

DATENAME(month, DATEADD(month, -1, <yourDateField>))

答案 2 :(得分:1)

你可以试试这个:

SELECT DATENAME(MM,CAST('1 June 2018' AS datetime)-1)