如何编写将文本月份添加到数值的表达式?
How to write an expression that adds text month to numerical value?
我有一份报告,其中 return 一个月内从 2 个地点售出的门数。月份显示为值 1-12.... 我想 return 1-Jan
、2-Feb
等
编辑
我正在使用:
datepart(MONTH, DeFactoUser.F_ST_Transaction.STTR_DATE)
获取月数,我试过:
datepart(MONTH, DeFactoUser.F_ST_Transaction.STTR_DATE) + '-' + datename(MONTH, DeFactoUser.F_ST_Transaction.STTR_DATE)
获取附加到号码的名称。我得到一个错误 Conversion failed when converting the nvarchar value 'September' to data type int.
显然在做一些愚蠢的事情......任何线索都会很好。
试试这个:
SELECT CAST(MONTH(GETDATE()) AS nvarchar(2)) +'-'+ CONVERT(varchar(3), GETDATE(), 100)
您可以使用 case 表达式:
SELECT CASE WHEN [Month] = 1 THEN '1-Jan'
WHEN [Month] = 2 THEN '2-Feb'
WHEN [Month] = 3 THEN '3-Mar'
...
END AS [MonthName]
备选方案正在使用 DATENAME:
SELECT CAST(MONTH(1) AS NVARCHAR(2))+'-'+LEFT(UPPER(DATENAME(MONTH,MONTH(1))),3)
之前有人问过:Convert Month Number to Month Name Function in SQL
如果您不想要 case 表达式。
如果您的月份列是日期,您可以使用 DATENAME
函数。
如果它只是一个数字,您仍然可以使用 DATENAME
,但使用 DATEFROMPARTS
模拟日期,例如
SELECT datename(MONTH,datefromparts(2017,1,1))
然后将您的电话号码和姓名与
连接起来
concat(cast(yournum AS varchar(2)),'-',datename(MONTH,datefromparts(2017,1,1)))
我有一份报告,其中 return 一个月内从 2 个地点售出的门数。月份显示为值 1-12.... 我想 return 1-Jan
、2-Feb
等
编辑
我正在使用:
datepart(MONTH, DeFactoUser.F_ST_Transaction.STTR_DATE)
获取月数,我试过:
datepart(MONTH, DeFactoUser.F_ST_Transaction.STTR_DATE) + '-' + datename(MONTH, DeFactoUser.F_ST_Transaction.STTR_DATE)
获取附加到号码的名称。我得到一个错误 Conversion failed when converting the nvarchar value 'September' to data type int.
显然在做一些愚蠢的事情......任何线索都会很好。
试试这个:
SELECT CAST(MONTH(GETDATE()) AS nvarchar(2)) +'-'+ CONVERT(varchar(3), GETDATE(), 100)
您可以使用 case 表达式:
SELECT CASE WHEN [Month] = 1 THEN '1-Jan'
WHEN [Month] = 2 THEN '2-Feb'
WHEN [Month] = 3 THEN '3-Mar'
...
END AS [MonthName]
备选方案正在使用 DATENAME:
SELECT CAST(MONTH(1) AS NVARCHAR(2))+'-'+LEFT(UPPER(DATENAME(MONTH,MONTH(1))),3)
之前有人问过:Convert Month Number to Month Name Function in SQL
如果您不想要 case 表达式。
如果您的月份列是日期,您可以使用 DATENAME
函数。
如果它只是一个数字,您仍然可以使用 DATENAME
,但使用 DATEFROMPARTS
模拟日期,例如
SELECT datename(MONTH,datefromparts(2017,1,1))
然后将您的电话号码和姓名与
连接起来concat(cast(yournum AS varchar(2)),'-',datename(MONTH,datefromparts(2017,1,1)))