是否有任何表达式可以直接从表达式构建器中获取月份名称?
我应该动态添加文件名的月份名称。我目前正在使用" DATEPART"函数,我收到了月份号,但我想要月份名称。任何人都可以帮助我吗?
答案 0 :(得分:2)
不 - 不幸的是没有。您有两种选择:
(MONTH(yourDate) == 1 ? "January" : MONTH(yourDate) == 2 ? "February" :
MONTH(yourDate) == 3 ? "March" : etc etc)
答案 1 :(得分:0)
SSIS表达式具有非常有限的功能集。如果我没记错的话,它提供了VBScript时可用的功能。即使在2016 according to the documentation中也没有字符串格式化功能,人们最终会连接字符串的各个部分。
您可以使用脚本步骤使用String.Format格式化日期并将结果存储在变量中,如[在脚本任务中使用变量](https://msdn.microsoft.com/en-us/library/ms135941.aspx)和this SO question中所示,例如:
var targetFolder=Dts.Variables["User::targetFolder"].Value;
var filePrefix=Dts.Variables["User::filePrefix"].Value;
var someDate=Dts.Variables["User::myDate"].Value;
var filePath= = String.Format(CultureInfo.InvariantCulture,"{0}_{1:MMMM}.txt",filePrefix,someDate);
var fullPath=Path.Combine(targetFolder,filePath);
Dts.Variables["User::filePath"].Value=fullPath;
脚本任务的优点是您可以使用所有.NET函数来格式化值(例如String.Format)和操作路径(例如Path.Combine,Path.GetFileNameWithoutExtension等)