web-dev-qa-db-fra.com

Reporting Services supprime l'heure de DateTime dans l'expression

J'essaie de renseigner une expression (valeur par défaut d'un paramètre) avec une heure explicite. Comment puis-je supprimer l'heure de la fonction "maintenant"?

56
Jeff

Trouvé la solution de ici

Cela obtient la dernière seconde du jour précédent:

DateAdd("s",-1,DateAdd("d",1,Today())

Ceci retourne la dernière seconde de la semaine précédente:

=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
2
Jeff

Quelque chose comme ça:

=FormatDateTime(Now, DateFormat.ShortDate) 

Où "Maintenant" peut être remplacé par le nom du champ de date/heure que vous essayez de convertir.)
Par exemple,

=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
91
Michael Maddox

Puisque SSRS utilise VB, vous pouvez effectuer les opérations suivantes:

=Today() 'returns date only

Si vous deviez utiliser:

=Now() 'returns date and current timestamp
43
RSolberg
=CDate(Now).ToString("dd/MM/yyyy")

Bien que vous codiez en dur le format de la date en fonction de l’environnement local.

27
Perhentian

Si vous devez afficher le champ sur l'en-tête du rapport, essayez ceci ... Clic droit sur la zone de texte> Propriétés> Catégorie> date> sélectionnez * Format (notez que les paramètres régionaux seront conservés).

Depuis que cette question a été vue à plusieurs reprises, je la poste ... J'espère que cela aidera.

enter image description here

16
singhswat

Utilisez simplement DateValue(Now) si vous souhaitez que le résultat soit du type de données DateTime.

8
user1165019

Si le format de données attendu est MM-dd-yyyy alors essayez ci-dessous ,

=CDate(Now).ToString("MM-dd-yyyy")

De même, vous pouvez essayer celui-ci,

=Format(Today(),"MM-dd-yyyy") 

Sortie: 02-04-2016

Remarque:
Now() vous montrera date du jour et horodatage

Today() vous montrera Date seulement pas le temps.

Vous pouvez également définir n’importe quel format de date au lieu de MM-dd-yyyy dans mon exemple.

7
pedram

Dans la propriété format de tout champ de zone de texte, vous pouvez utiliser des chaînes de format:

par exemple. J/M/A, D, etc.

5
zzawaideh

Une chose qui pourrait aider les autres est que vous pouvez placer: =CDate(Now).ToString("dd/MM/yyyy") dans la propriété Format String de SSRS, que vous pouvez obtenir en cliquant avec le bouton droit de la souris sur la colonne. C'est la façon la plus propre de le faire. Ensuite, votre expression ne sera pas trop grande et difficile à analyser visuellement :)

3
lbranjord
    FormatDateTime(Parameter.StartDate.Value)
2
Alivia

Ma solution pour un paramètre Date/Time:

=CDate(Today())

L'astuce consiste à reconvertir en DateTime comme le recommande Perhentian.

2
will webster

Il suffit de concaténer une chaîne à la fin de la valeur:

Fields!<your field>.Value & " " 'test' 

et cela devrait marcher!

2
amad

J'arrive en retard mais j'ai essayé toutes les solutions ci-dessus! ne pouvait pas l'obtenir pour laisser tomber les zéros dans le paramètre et me donner un défaut (il a ignoré le formatage ou est apparu vide). J'utilisais SSRS 2005, donc je me débattais avec ses problèmes de maladresse/buggy.

Ma solution de contournement consistait à ajouter une colonne à la table [DimDate] personnalisée de ma base de données à partir de laquelle je tirais les dates. J'ai ajouté une colonne qui était une représentation sous forme de chaîne au format souhaité de la colonne [date]. J'ai ensuite créé 2 nouveaux jeux de données dans SSRS qui ont traité les requêtes suivantes pour 2 valeurs par défaut pour les valeurs par défaut des dates "À" et "De" -

'de'

    SELECT  Datestring
    FROM    dbo.dimDate
    WHERE   [date] = ( SELECT   MAX(date)
                       FROM     dbo.dimdate
                       WHERE    date < DATEADD(month, -3, GETDATE()
                     )

'à'

    SELECT  Datestring
    FROM    dbo.dimDate
    WHERE   [date] = ( SELECT   MAX(date)
                       FROM     dbo.dimdate
                       WHERE    date <= GETDATE()
                     )
2
Chris Wood

Cela devrait être fait dans le jeu de données. Tu pourrais faire ça

Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName

Dans SSRS Layout, faites ceci =Fields!DateColumnName.Value

1
Ricky Hope