我在时间表中有两个不同的列,例如月份列和年份列。
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 格式的月份。你能帮我解决这个问题吗?
我在时间表中有两个不同的列,例如月份列和年份列。
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 格式的月份。你能帮我解决这个问题吗?
你想留下填充数据。这是一种方法:
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
假设 year和month是int:
SELECT CONVERT(varchar(4),[year]) + '-' + RIGHT('0' + CONVERT(varchar(2),[month]),2)
FROM YourTable;
只是另一种选择
例子
Select Period = stuff([year]*100+[month],5,0,'-')
From timetable
回报
Period
2017-04
2018-05
2017-10