Reporting Services rimuove l'ora da DateTime in Expression
-
22-09-2019 - |
Domanda
Sto cercando di popolare un'espressione (valore predefinito di un parametro) con un'ora esplicita.Come rimuovo l'ora dalla funzione "adesso"?
Soluzione 12
Trovato la soluzione da qui
Questo diventa l'ultimo secondo del giorno precedente:
DateAdd("s",-1,DateAdd("d",1,Today())
Questo restituisce l'ultimo secondo della settimana precedente:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
Altri suggerimenti
Qualcosa di simile a questo:
=FormatDateTime(Now, DateFormat.ShortDate)
Dove "Now" può essere sostituito dal nome del campo data / ora che si sta cercando di convertire.)
Per esempio,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
Dal SSRS utilizza VB, è possibile effettuare le seguenti operazioni:
=Today() 'returns date only
Se si sceglie di usare:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
Anche se sono duro di codifica del formato della data per un locale.
Se si deve visualizzare il campo in intestazione del report quindi provare questo ... RightClick sulla Casella di testo> Proprietà> categoria> Data> selezionare * Formato (Nota: questo manterrà le impostazioni internazionali).
Dal momento che questa domanda è stato visto molte volte, sto postando è ... Speranza che aiuta.
Basta usare DateValue(Now)
se si desidera che il risultato sia del tipo di dati DateTime
.
Se il formato dei dati previsto è MM-dd-yyyy
quindi prova di seguito,
=CDate(Now).ToString("MM-dd-yyyy")
Allo stesso modo puoi provare questo,
=Format(Today(),"MM-dd-yyyy")
Produzione: 02-04-2016
Nota:
Now()
ti mostrerò data odierna E marca temporale
Today()
ti mostrerò Data solo non parte del tempo.
Inoltre puoi impostare qualsiasi formato di data invece di MM-dd-yyyy
nel mio esempio.
Nella proprietà formato di qualsiasi campo di testo è possibile utilizzare stringhe di formato:
es. D / M / Y, D, ecc
Una cosa che potrebbe aiutare gli altri è che è possibile inserire: =CDate(Now).ToString("dd/MM/yyyy")
in formato STRING proprietà di SSRS che può essere ottenuto facendo clic destro la colonna. Questo è il modo più pulito per farlo. Allora la vostra espressione non sarà troppo grande e difficile da visivamente "analizzare":)
FormatDateTime(Parameter.StartDate.Value)
sto arrivando alla fine del gioco, ma ho provato tutte le soluzioni di cui sopra! Non sono riuscito a farlo cadere lo zero del nel parametro e dammi un default (è ignorato la formattazione o è apparso vuoto). Stavo usando SSRS 2005 così è stato alle prese con i suoi problemi goffo / buggy.
La mia soluzione era di aggiungere una colonna alla tabella personalizzata [DimDate] nel mio database che stavo tirando risale. Ho aggiunto una colonna che era una rappresentazione stringa nel formato desiderato della colonna [data]. Poi ho creato 2 nuovi set di dati in SSRS che trainavano le seguenti query per 2 di default per la mia 'a' e 'da' la data di default -
'da'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date < DATEADD(month, -3, GETDATE()
)
'su'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date <= GETDATE()
)
La mia soluzione per un parametro Data / Ora:
=CDate(Today())
Il trucco è quello di convertire di nuovo ad un DateTime come raccomanda Perhentian.
Proprio concatenare una stringa alla fine del valore:
Fields!<your field>.Value & " " 'test'
e questo dovrebbe funzionare!
Questo dovrebbe essere fatto nel set di dati. Si potrebbe fare questo
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
In Layout SSRS
, solo fare questo =Fields!DateColumnName.Value