5

Sto creando un report utilizzando Report Builder 3.0.Generatore report 3.0: Come convertire la rappresentazione di stringa delle date nel formato mm/gg/aa utilizzando CDate

Il sistema di origine con cui sto lavorando ha stringhe che rappresentano date nel formato mm/dd/yy, ma voglio mostrare questo agli utenti finali come dd-MMM-yy invece. L'utilizzo della stringa CDate sulla stringa mi darà errori perché interpreta la stringa nel formato dd/mm/yy (impostazioni internazionali statunitensi).

C'è un modo per convertire correttamente la stringa in una data senza modificare le impostazioni internazionali (questa non è davvero un'opzione)?

Grazie!

risposta

9

È possibile utilizzare il comando Format e specificare il formato esatto richiesto. Per esempio:

=Format(Cdate(Fields!Date.Value),"dd-MM-yyyy") 

o si può provare questo:

=Day(Fields!Date.Value) & "/" & Month(Fields!Date.Value) & "/" & Year(Fields!Date.Value) 

EDIT: Questo è OK:

=Cdate(Mid(Fields!Date.Value,4,2) & "/" & Mid(Fields!Date.Value,1,2) & "/" & Mid(Fields!Date.Value,7,4)) 
+0

CDate restituirà un errore se il campo Data non è in il formato "gg/mm/aaaa" già. Ad esempio, se ho "01/15/2012", CDate penserà che il campo del mese è "15" e genera un errore. – confusedKid

+0

Ho aggiornato la risposta. Controllala ora se è OK. – Hari

+0

Questo dà lo stesso risultato, poiché 'Day',' Month' e 'Year' si aspettano che i rispettivi valori siano in formato" gg-mm-aaaa ". 'Month' controllerà sempre la parte centrale della stringa per il valore del mese ... – confusedKid