2015-02-13 22 views
6

Als ich den Bericht, das Datum zeigt im Format YYYYMMDD laufen, aber ich brauche es zu konvertieren MM/DD/YYYYSSRS Format Datum YYYYMMDD bis MM/DD/YYYY

Zum Beispiel formatiert werden:20150213 - erwartetes Ergebnis 02/13/2015

Der folgende Ausdruck funktioniert nicht. Vorschläge?

=Format(Fields!InstallDate0.Value,"MM/dd/yyyy") 
+0

Kommt heraus, wo? in einer Aufforderung oder auf dem Bericht? Wie funktioniert es nicht? Gibt es einen Fehler? Wenn nicht, was ist das Ergebnis? –

+0

Wenn ich die SQL-Abfrage ausführen, zeigen die Ergebnisse zum Beispiel "20150213". Zeigt dasselbe an, wenn ich es zu SSRS hinzufüge. Es gibt keine Fehler. Ich muss dieses Format auf 13.02.2015 konvertieren. – user3711442

+0

@ user3711442 Haben Sie Ihr Problem gelöst? –

Antwort

6

Es ist wie InstallDate0 aussieht, ist eine Zeichenfolge, kein Datum. Konvertieren Sie es zu einem Datum zuerst, dann formatieren:

=Format(CDate(Fields!InstallDate0.Value), "MM/dd/yyyy") 
+1

Ich erhalte #Error in allen Datensätzen für diese Spalte, wenn dieser Ausdruck verwendet wird. – user3711442

1

Sie sollten nutzen können:

=Format(Fields!InstallDate0.Value,"d") 

Wenn dies nicht funktioniert, meine Vermutung ist, dass Sie das Datum in das bringen Bericht als String. Sie können ein YYYYMMDD formatierte String als Datetime in SQL-Abfrage Stimmen:

cast(InstallDate0 as datetime) 
+0

= Format (Felder! InstallDate0.Value, "d") --- All dies wurde "d" in alle Datensätze für diese Spalte gesetzt. cast (IinstallDate0 als datetime) funktionierte auch nicht in der Abfrage. – user3711442

+0

Fehler, den ich erhalte, ist "Umwandlung gescheitert, wenn Datum und/oder Zeit von der Zeichenkette umgewandelt werden." – user3711442

+0

Können Sie bitte Ihre SQL-Abfrage bereitstellen? –

3

das Feld in der Datenbank als DateTime Feld oder als etwas anderes gespeichert sind?

Ich gehe davon aus, dass es kein DateTime, sondern eine ganze Zahl oder eine Zeichenfolge ist.

Angenommen, Ihre Spalte InstallDate0 genannt wird, Ihre Abfrage ändern, diesen Ausdruck zu verwenden (wir werden die Quelltabelle zu übernehmen hat den Alias ​​T1):

InstallDate0 = CONVERT(datetime, CONVERT(varchar(8), T1.InstallDate0), 112) 

Das Zeichenfolge zurück (oder int) als DateTime. Sie können nun die Formatierungsfunktionen von SSRS verwenden:

=Format(Fields!InstallDate0.Value,"MM/dd/yyyy") 
0

Schnell Lösung, die vielleicht jemand in meinem Fall helfen kann, @ini_date ist ein Parameter, so Abfrage Umwandlung nicht anwendbar war ....

Wenn Ein Datum ist in diesem Format -> yyyymmdd, ich habe eine gültige Datumszeichenkette konstruiert, mit right() mid() und left(), verknüpfe es mit Schrägstrichen und wandle es in einen Datumstyp um, damit es formatiert werden kann.

Hier ist der Ausdruck >>

="Date: "&format(cdate((right(Parameters!ini_date.Value,2) &"/"&mid(Parameters!ini_date.Value,5,2)&"/"&left(Parameters!ini_date.Value,4))),"MMMM dd, yyyy") 

ersetzen Sie einfach den "MMMM dd, yyyy" Teil, mit dem, was Ihr Bericht passt am meisten.

0

Dies könnte helfen.

Nehmen wir an, InstallDate0 = 151116 (ersetzen Sie einfach InstallDate0 mit dem Namen Ihres Feldes!))

Ich mag folgende 151116 => 11/16/2015

YYMMDD vom Typ string

zu

MM/tt/ vom Typ Datum konvertieren

Der Ausdruck wäre: =format(CDate(Mid(Fields!InstallDate0.Value,3,2)&"/"&Right(Fields!InstallDate0.Value,2)&"/"&Left(Fields!InstallDate0.Value+20000000,4)),"MM/dd/yyyy")

wenn Sie die gleiche Ausnahme von 20.151.116 => 11/16/2015

yyyy MMTT vom Typ string

zu

MM/tt/ vom Typ Datum tun wollten

der Ausdruck wäre folgende: =format(CDate(Mid(Fields!InstallDate0.Value,5,2)&"/"&Right(Fields!InstallDate0.Value,2)&"/"&Left(Fields!InstallDate0.Value,4)),"MM/dd/yyyy")

Schlagwörter: Wie c onvert Zeichenfolge bisher mit einem Ausdruck für SQL Server Report Builder

1

Das ist für mich gearbeitet -

Format(CDate(DateAdd(DateInterval.DayOfYear, 1, Now())), "MM/dd/yyyy")

Anforderung war das aktuelle Datum + 1 im Format MM/tt/zu erhalten. Sie können DateAdd(DateInterval.DayOfYear, 1, Now()) durch Ihren Feldwert ersetzen.

+0

Es ist vergleichbar mit der ersten Antwort. Ich habe nicht genug Reputation, um zu kommentieren oder zu wählen, also als Antwort zu posten. – Anoop

1

Ich fand heraus, dass man direkt in den Einstellungen Ihres Zelle eine benutzerdefinierte Einstellung wie folgt definieren:

MM'/'dd'/'yyy