2017-01-10 5 views
0

In meiner Datenbank habe ich eine Report_year Spalte (char (4)) und eine Report_month Spalte (varchar (2)). Ich mache einen ssrs-Bericht, der eine gespeicherte Prozedur verwenden würde und Daten aus dieser Tabelle ziehen würde, und meine Parameter sind Datum und Jahr. Das gelingt mir, indem ich die beiden Spalten umwandle und verkette, und dazwischen ein "/" hinzufüge. Im SSRS-Bericht ist der Parameter, den Benutzer eingeben müssen, der Monat und das Datum (z. B. 09/2016).Kombinieren Jahr Spalte und Monat Spalte bis zum Datum

Benutzer möchten ein Dropdown, um die Daten zu erhalten. Da mein Parameter ein Varchar ist, würde er buchstäblich nach dem oben formatierten Monat und dem Jahr fragen. Gibt es das überhaupt, um dies ohne den Tag selbst, nur den Monat und das Jahr zu machen? Ich habe datediff und dateadd Funktionen versucht, aber ich habe kein Glück.

+0

Jahr und Monat ganze Zahlen sind, entsprechende Datentypen. Und wenn Sie Datumsangaben verarbeiten, verwenden Sie den Datentyp "Datum". Mit dem richtigen Datentyp wird alles einfacher. Ich bekomme deine Frage auch nicht wirklich, fragst du, ob du '09/2016 'in ein Datetime umwandeln kannst? Nein, du kannst nicht, ein Date braucht einen Tag. Wenn Sie einen Tag als Standard festlegen möchten, können Sie 'DATEFROMPARTS' und' SUBSTRING' verwenden. – HoneyBadger

+0

Ich habe versucht, sie beide als int zu werfen und erstellt meine Variable als int. Wenn ich das mache, gibt es keine Ergebnisse. Beispiel: declare @reportdate als int = '201609' wählen .... aus .... wo .... und Besetzung (reportyear als int) + cast (reportmonth als int) = atreportdate (I kann nicht mehr als ein "at" -Symbol verwenden, so dass ich buchstäblich auf) – Lisbon

Antwort

1
Select BegMonth = cast(Replace('09/2016','/','/01/') as date) 
     ,EndMonth = EOMonth(cast(Replace('09/2016','/','/01/') as date)) 

Returns

BegMonth EndMonth 
2016-09-01 2016-09-30 
+0

hmmm ... Ich mag die Idee, aber es löst nicht meine Probleme in SSRS. Ich brauche ein Dropdown, das sowohl den Monat als auch das Jahr enthält. Der Tag spielt für mich keine Rolle, da es dort kein Tagesfeld gibt. Wir berücksichtigen nur die Daten, die für den Monat eingegeben wurden, daher gibt es eine Spalte für Jahr und Monat. Ich stimme nicht mit der Art, wie die Felder gebaut werden, aber hey, ich habe es nicht erstellt. – Lisbon

Verwandte Themen