Ich versuche, einen Ausdruck (Standardwert eines Parameters) mit einer expliziten Zeit zu füllen. Wie entferne ich die Zeit aus der "Jetzt" -Funktion?
Fand die Lösung von hier
Dies erhält die letzte Sekunde des vorherigen Tages:
DateAdd("s",-1,DateAdd("d",1,Today())
Dies gibt die letzte Sekunde der vorherigen Woche zurück:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
Etwas wie das:
=FormatDateTime(Now, DateFormat.ShortDate)
Wobei "Jetzt" durch den Namen des Datums-/Zeitfelds ersetzt werden kann, das Sie konvertieren möchten.)
Zum Beispiel,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
Da SSRS VB verwendet, können Sie Folgendes tun:
=Today() 'returns date only
Wenn Sie verwenden würden:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
Obwohl Sie das Datumsformat hart auf ein Gebietsschema programmieren.
Wenn Sie das Feld in der Berichtskopfzeile anzeigen müssen, versuchen Sie Folgendes: Klicken Sie mit der rechten Maustaste auf Textbox> Eigenschaften> Kategorie> Datum> wählen Sie * Format (Beachten Sie, dass hierdurch die regionalen Einstellungen beibehalten werden).
Da diese Frage oft angeschaut wurde, poste ich sie ... Hoffe, es hilft.
Verwenden Sie einfach DateValue(Now)
, wenn das Ergebnis vom Datentyp DateTime
sein soll.
Wenn das erwartete Datenformat MM-dd-yyyy
ist, versuchen Sie es unter .
=CDate(Now).ToString("MM-dd-yyyy")
Ebenso können Sie dieses versuchen,
=Format(Today(),"MM-dd-yyyy")
Ausgabe: 02-04-2016
Hinweis: Now()
zeigt Ihnen aktuelles Datum und Zeitstempel an
Today()
zeigt Ihnen Date nur kein Zeitteil.
Sie können auch ein beliebiges Datumsformat anstelle von MM-dd-yyyy
in meinem Beispiel festlegen.
In der format-Eigenschaft eines Textfelds können Sie Formatzeichenfolgen verwenden:
z.B. D/M/Y, D usw.
Eine Sache, die anderen helfen könnte, ist, dass Sie Folgendes einfügen können: =CDate(Now).ToString("dd/MM/yyyy")
in die Format String-Eigenschaft von SSRS, die durch Klicken mit der rechten Maustaste auf die Spalte abgerufen werden kann. Das ist der sauberste Weg. Dann wird dein Ausdruck nicht zu groß und es wird schwierig sein, ihn visuell zu "parsen" :)
FormatDateTime(Parameter.StartDate.Value)
Meine Lösung für einen Datum/Uhrzeit-Parameter:
=CDate(Today())
Der Trick ist, wie von Perhentian empfohlen, wieder in eine DateTime umzuwandeln.
Verketten Sie einfach eine Zeichenfolge bis zum Ende des Werts:
Fields!<your field>.Value & " " 'test'
und das sollte funktionieren!
Ich komme spät ins Spiel, aber ich habe alle oben genannten Lösungen ausprobiert! konnte es nicht dazu bringen, die Nullen im Parameter zu löschen und mir eine Standardeinstellung zu geben (es ignorierte die Formatierung oder schien leer zu sein). Ich benutzte SSRS 2005 und kämpfte mit seinen klobigen/fehlerhaften Problemen.
Meine Problemumgehung bestand darin, der benutzerdefinierten Tabelle [DimDate] in meiner Datenbank, aus der ich Daten abgerufen habe, eine Spalte hinzuzufügen. Ich habe eine Spalte hinzugefügt, die eine Zeichenfolgendarstellung im gewünschten Format der Spalte [Datum] war. Anschließend habe ich in SSRS zwei neue Datasets erstellt, die die folgenden Abfragen für zwei Standardwerte für meine Standardwerte für das Datum "Bis" und "Ab" abgerufen haben:
'von'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date < DATEADD(month, -3, GETDATE()
)
'zu'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date <= GETDATE()
)
Dies sollte im Datensatz erfolgen. Du könntest das tun
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
Führen Sie in SSRS
Layout diese =Fields!DateColumnName.Value