Sql server 与SQL Server 2012相比,SQL Server 2016在格式上删除了前导零

Sql server 与SQL Server 2012相比,SQL Server 2016在格式上删除了前导零,sql-server,Sql Server,我们正在测试将数据仓库从SQL Server 2012迁移到SQL Server 2016 在生成日期维度时,我注意到以下内容会产生不同的结果: 格式(DateList.CalendarDate,'M','en gb') SQL Server 2012的前导值为零,而as 2016的前导值为零: 1月1日vs1月1日 知道为什么吗?有这样的设置吗?我不想更改任何使用此函数的代码。您是否尝试过在SQL Server 2016中选择格式(GETDATE(),'M','en gb')作为“大不列颠英语

我们正在测试将数据仓库从SQL Server 2012迁移到SQL Server 2016

在生成日期维度时,我注意到以下内容会产生不同的结果:
格式(DateList.CalendarDate,'M','en gb')

SQL Server 2012的前导值为零,而as 2016的前导值为零:
1月1日
vs
1月1日


知道为什么吗?有这样的设置吗?我不想更改任何使用此函数的代码。

您是否尝试过在SQL Server 2016中选择格式(GETDATE(),'M','en gb')作为“大不列颠英语结果”?老实说,我不会使用
格式()
,坚持使用经过验证的
转换()
方法(即使它们更麻烦)。否则,请尝试使用
'dd MMMM'
而不是
'M'
。再一次,更麻烦,但不容易受到区域设置和其他外部影响。是的,不理想,但试图避免进行任何计划外的更改。发现它只在少数地方使用过,所以改成了
DATENAME(month…
)。只是好奇为什么这两个实例(在同一台服务器上,所以我不认为它的区域设置)的功能不同。