需要将月份列作为MM格式

时间:2018-05-31 10:29:25

标签: sql sql-server

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

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格式的月份。可以帮助我。

3 个答案:

答案 0 :(得分: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 

答案 1 :(得分:0)

假设 yearmonthint

SELECT CONVERT(varchar(4),[year]) + '-' + RIGHT('0' + CONVERT(varchar(2),[month]),2)
FROM YourTable;

答案 2 :(得分:0)

只是另一种选择

示例

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

<强> Reurns

Period
2017-04
2018-05
2017-10