我需要从给定的月份名称获取上个月的名称。
例如,我需要在6月的特定月份将上月作为5月。 没有约会。
我尝试了select CAST(Monthname-1 AS Varchar(max)) from table
答案 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)