我有两台服务器。它们都使用区域和语言以及德语dd.mm.yyyy
我部署了一个使用datetime参数的SSIS包,而其中一个服务器接受格式dd.mm.yyyy
而另一个服务器不接受。{/ p>
参数值设置如下:
SELECT @ssis_command = @ssis_command + ' /SET "\"\Package.Variables[User::business_ts].Properties[Value]\"";"\"' + CONVERT(VARCHAR(50), GETUTCDATE(), 104) + ' ' + REVERSE(SUBSTRING(REVERSE(CONVERT(VARCHAR(50), GETUTCDATE(), 114)), 5, 46)) + '\"" '
select CONVERT(VARCHAR(50), GETUTCDATE(), 104) + ' ' + REVERSE(SUBSTRING(REVERSE(CONVERT(VARCHAR(50), GETUTCDATE(), 114)), 5, 46))
所以我按以下格式获取日期时间:dd.mm.yyyy hh:mm:ss
但第二台服务器需要英国/法国格式:mm/dd//yyyy hh:mm:ss
两台服务器都有英文版的SQL Server。
两个服务器中DBCC USEROPTIONS
的输出完全相同。
textsize 2147483647
language us_english
dateformat mdy
datefirst 7
lock_timeout -1
quoted_identifier SET
arithabort SET
ansi_null_dflt_on SET
ansi_warnings SET
ansi_padding SET
ansi_nulls SET
concat_null_yields_null SET
isolation level read committed
SSIS包的 Locale Id
设置为德国
对于期望英国日期格式的服务器中可能出现什么问题的任何想法? SQL Server Integration Services是否有任何默认日期格式?
Windows Server 2016
SQLServer 2017
编辑:
这是一个包含SSIS包IDE属性窗口的屏幕截图。在设计时,它是dd.mm.yyyy
格式与德语(德国)LocaleID,但在XML视图中它显示mm / dd / yyyy格式。
<DTS:Variable
DTS:CreationName=""
DTS:Description="Timestamp for validity. (send to the package at ignition)"
DTS:DTSID="{4D953920-D7BA-46E8-9683-45FDEE817661}"
DTS:IncludeInDebugDump="2345"
DTS:Namespace="User"
DTS:ObjectName="business_ts">
<DTS:VariableValue
DTS:DataType="7">1/1/1950</DTS:VariableValue>
</DTS:Variable>