如何在SQL中将零填充到子字符串?

Sam*_*eer 2 sql sql-server

我有一个varchar类型的列,文本像20171126-401-9-4496.该字符串有4个部分,每个部分的长度固定:

第1节 - 8位数

第2节 - 4位数

第3节 - 2位数

第4节 - 4位数

我想用'0'填充字符串的第2和第3部分,使文本变得 20171126-0401-09-4496满足每个部分的固定长度要求.我试过SUBSTRINGCHARINDEX功能,但无法得到所需的结果.如何解决这个问题?

Tab*_*man 6

什么是PARSENAME黑客的完美时间!

SELECT PARSENAME(REPLACE(MyColumn,'-','.'),4)+'-'+
       RIGHT('0000'+PARSENAME(REPLACE(MyColumn,'-','.'),3),4)+'-'+
       RIGHT('00'+PARSENAME(REPLACE(MyColumn,'-','.'),2),2)+'-'+
       PARSENAME(REPLACE(MyColumn,'-','.'),1)
Run Code Online (Sandbox Code Playgroud)