所有
我在不知道时区等方面很糟糕。
任何人都可以帮助我理解为什么:
@ [$ Package :: ExportFileLocation] + REPLACE( @ [$ Package :: ExportFileName] +" _" + SUBSTRING(REPLACE((DT_STR,50, 1250)GETDATE(),":",""),1,10)," "," _")+"。" + @ [$包:: ExportFileExtension]
产生
C:\用户\ russellm \桌面\ PWCCurrentCodeExtract_2014-08-13.TXT
在我的本地和这个:
C:\用户\ russellm \桌面\ PWCCurrentCodeExtract_2014-08-12.TXT
在服务器上。
所有服务器日期和时区都没有问题。
这是完整的SSIS表达。
感谢 拉斯
答案 0 :(得分:0)
SQL Server 2008+(之前不确定)从Windows获取当前日期/时间,因此如果您说服务器和PC具有相同的时间和区域设置,那么您的SQL Server排序可能会有所不同。这可能意味着使用Code Page 1250转换日期会产生不同的效果。
此页面显示哪个CodePage应与特定的排序规则一起使用
http://technet.microsoft.com/en-us/library/ms186356%28v=sql.105%29.aspx
仅供参考,我发现的大多数示例都使用CP1252,因此您可能需要尝试使用
@[$Package::ExportFileLocation] + REPLACE( @[$Package::ExportFileName] + "_" + SUBSTRING(REPLACE( (DT_STR, 50, 1252) GETDATE() , ":", "") , 1, 10) , " ", "_") + "."+ @[$Package::ExportFileExtension]
看看是否有所作为。