“复制功能”未按预期工作

时间:2018-10-02 19:45:32

标签: sql sql-server

我想向月份/日期动态添加前导零,下面是我的查询:

select 
LEFT(CONCAT(isnull(replicate('0' ,2-len(convert(varchar,month('1/1/2018')))+ convert(varchar,day('1/1/2018'))),''),space(2)),2)

预期输出:

2018年1月1日为'01',但我得到的是'00'。

有帮助吗?!

1 个答案:

答案 0 :(得分:0)

我认为您的日期是以字符串形式存储的。您可以将其转换为日期,该日期将添加前导零,然后将其转换为varchar with whatever format code you want。使用101格式获取所需内容:

SELECT CONVERT(varchar(10),CONVERT(date,'1/2/2018'),101)

输出:

01/02/2018

正如亚伦·伯特兰(Aaron Bertrand)所说,这种格式可能不清楚哪个值是天,哪个值是月。