Reporting Services Retirer du temps DateTime dans Expression
-
22-09-2019 - |
Question
Je suis en train de remplir une expression (valeur par défaut d'un paramètre) avec un temps explicite. Comment puis-je supprimer le temps de la fonction « maintenant »?
La solution 12
trouvé la solution de ici
obtient la dernière seconde de la veille:
DateAdd("s",-1,DateAdd("d",1,Today())
retourne la dernière seconde de la semaine précédente:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
Autres conseils
Quelque chose comme ceci:
=FormatDateTime(Now, DateFormat.ShortDate)
Où « Maintenant » peut être remplacé par le nom du champ date / heure que vous essayez de convertir.)
Par exemple,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
Depuis SSRS utilise VB, vous pouvez effectuer les opérations suivantes:
=Today() 'returns date only
Si vous deviez utiliser:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
Bien que vous coder en dur le format de date à un lieu.
Si vous devez afficher le champ en-tête du rapport, puis essayez ceci ... RightClick sur la zone de texte> Propriétés> Catégorie> Date> select * Format (Notez que ce maintiendra les paramètres régionaux).
Étant donné que cette question a été vu à plusieurs reprises, je suis le poster ... Espérons que ça aide.
Il suffit d'utiliser DateValue(Now)
si vous voulez que le résultat soit de type de données DateTime
.
Si le format de données attendu est MM-dd-yyyy
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
Note:
Now()
date et horodatage
Today()
Date ne fait pas partie de temps.
vous pouvez également définir un format de date au lieu de MM-dd-yyyy
dans mon exemple.
Dans la propriété de format d'un champ de zone de texte, vous pouvez utiliser des chaînes de format:
par exemple. D / M / Y, D, etc.
Une chose qui pourrait aider les autres est que vous pouvez placer: =CDate(Now).ToString("dd/MM/yyyy")
dans la chaîne de format propriété de SSRS qui peut être obtenu par un clic droit sur la colonne. C'est la plus propre façon de le faire. Ensuite, votre expression ne sera pas trop grand et difficile visuellement « analyser »:)
FormatDateTime(Parameter.StartDate.Value)
Je suis arrivé en retard dans le jeu mais j'ai essayé toutes les solutions ci-dessus! n'a pas pu obtenir de laisser tomber les zéros dans le paramètre et me donner une valeur par défaut (elle a ignoré la mise en forme ou est apparu en blanc). J'utilisais SSRS 2005 donc a été aux prises avec ses problèmes maladroits / buggy.
Ma solution était d'ajouter une colonne à la coutume [DimDate] tableau dans ma base de données que je tirais les dates de. J'ai ajouté une colonne qui était une représentation de chaîne dans le format souhaité de la colonne [date]. J'ai ensuite créé 2 nouveaux jeux de données SSRS qui ont tiré dans les requêtes suivantes pour 2 valeurs par défaut pour mon « To » et « De » défaut de date -
'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()
)
Ma solution pour un paramètre Date / Heure:
=CDate(Today())
L'astuce consiste à reconvertir en un DateTime comme recommande Perhentian.
Il suffit de concaténer une chaîne à la fin de la valeur:
Fields!<your field>.Value & " " 'test'
et cela devrait fonctionner!
Cela devrait être fait dans l'ensemble de données. Vous pouvez le faire
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
Dans la mise en page de SSRS
, il suffit de ce =Fields!DateColumnName.Value