1

我在时间表中有两个不同的列,例如月份列和年份列。

year     month
2017      4
2018      5
2017     10

但我想显示如下输出

year-month
2017-04
2018-05
2017-10

对于连接,我将代码编写为

 select concat(year,'-',month) as period from timetable 

但我无法编写代码以获取 MM 格式的月份。你能帮我解决这个问题吗?

4

3 回答 3

2

你想留下填充数据。这是一种方法:

select concat(year, '-', right('00' + month, 2)) as period
from timetable 

这假设month是一个字符串。否则你需要转换它:

select concat(year, '-', right('00' + cast(month as varchar(2)), 2)) as period
from timetable 
于 2018-05-31T10:30:23.483 回答
0

假设 yearmonthint

SELECT CONVERT(varchar(4),[year]) + '-' + RIGHT('0' + CONVERT(varchar(2),[month]),2)
FROM YourTable;
于 2018-05-31T10:31:09.310 回答
0

只是另一种选择

例子

Select Period = stuff([year]*100+[month],5,0,'-')
 From  timetable 

回报

Period
2017-04
2018-05
2017-10
于 2018-05-31T10:41:55.120 回答