2016-07-05 9 views
1

Gibt es einen Ausdruck, aus dem ich den Monatsnamen direkt im Ausdrucksersteller abrufen kann?Hinzufügen des Monatsnamens zur Datei in ssis

Ich soll Monat Name mit Dateinamen dynamisch hinzufügen. Ich benutze derzeit die Funktion "DATEPART", von der ich die Monatsnummer erhalten habe, aber ich möchte Monatsname. Kann mir jemand helfen?

+0

Nach der [Dokumentation ] (https://msdn.microsoft.com/en-us/library/ms141671.aspx) Es gibt nicht eine, aber einige Funktionen * fehlen für die Liste. Sie können eine Skriptaufgabe verwenden, um einen Wert zu formatieren und das Ergebnis in einer Variablen zu speichern –

Antwort

1

Nein verwenden - leider nicht . Sie haben zwei Möglichkeiten:

  1. Rückkehr der Monatsname von SQL als Teil des Datensatzes oder
  2. ein bisschen von einem verrückten Ausdruck Do:

(MONTH(yourDate) == 1 ? "January" : MONTH(yourDate) == 2 ? "February" :MONTH(yourDate) == 3 ? "March" : etc etc)

+1

Nun! Ich habe versucht, den Ausdruck zu verwenden, und es gibt mir den Monatsnamen! :) –

+0

Gut - wenn Sie glücklich sind, akzeptieren Sie bitte die Antwort. – BIDeveloper

0

SSIS-Ausdrücke haben eine sehr begrenzte Anzahl von Funktionen. Wenn ich mich richtig erinnere, bietet es die Funktionen, die mit VBScript weit zurück zur Verfügung standen. Es gibt auch in 2016 keine according to the documentation String-Formatierungsfunktionen und Leute verketten die verschiedenen Teile eines Strings.

können Sie einen Skript Schritt verwenden, obwohl ein Datum zu formatieren String.Format verwenden und das Ergebnis in einer Variablen, wie gezeigt in [Variablen in einem Skripttask verwenden] (https://msdn.microsoft.com/en-us/library/ms135941.aspx) und this SO question, zB:

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; 

der Vorteil eines Skripts Aufgabe ist es, dass Sie alle .NET-Funktionen zur Formatierung von Werten (zB String.Format) und manipulieren Pfade (zB Path.Combine, Path.GetFileNameWithoutExtension etc)

Verwandte Themen