Reporting services 在Reporting Services 2008中显示时间

Reporting services 在Reporting Services 2008中显示时间,reporting-services,time,reporting,Reporting Services,Time,Reporting,我的报告中有一个表,其中有数据类型为Time(7)的列 现在,我在Reporting Services 2008中无法正确格式化它们 如果我将表达式的格式设置为HH:mm,它仍然显示11:12:000 我只想得到时间和分钟!比如11:12 看起来RS不知道格式。以下任何一项都不起作用: =Hour(Fields!MyTime.Value) =CDate(Fields!MyTime.Value) 两者都会抛出一个错误。我认为它很可能将其格式化为纯文本 谢谢你的帮助 编辑: 我使用SQL Ser

我的报告中有一个表,其中有数据类型为
Time(7)
的列

现在,我在Reporting Services 2008中无法正确格式化它们

如果我将表达式的格式设置为HH:mm,它仍然显示
11:12:000

我只想得到时间和分钟!比如
11:12

看起来RS不知道格式。以下任何一项都不起作用:

=Hour(Fields!MyTime.Value)

=CDate(Fields!MyTime.Value)
两者都会抛出一个错误。我认为它很可能将其格式化为纯文本

谢谢你的帮助

编辑:

我使用SQL Server 2008 R2 Express作为数据库。(因此我将数据源包括在报告中,因为SQLServerExpress中的ReportingServices不允许使用共享数据源。)

解决方案(感谢Mark Bannister):

=Today() + Fields!MyTime.Value

然后可以使用datetime值的通用格式

在查询中尝试将
MyTime
替换为
cast(MyTime作为datetime)作为MyTime
,并将表达式的格式设置为
HH:mm

尝试使用format()函数包装表达式。例如:

您有一个文本框,或者一个带有时间值的datagrid/matrix。将表达式编辑为:

format( (time1 -time2) + (time3 - time4) , "HH:mm")  
我经常将其与
Datetime
一起使用,以在显示时“切断”时间

范例

format(dateVal,"MM/dd/yyyy") 
将显示

10/05/2010
以下是一些可能有帮助的信息:


您使用的是什么数据源(SQL/other、SQL方言、版本等)?如果我对这些时间值不做任何处理,这就解决了问题。但当我对这些值进行加法或二次运算时,我仍然得到了错误的格式,因为带日期的数学会返回一个时间跨度,我猜。。。但是使用CDATE(mytime1+mytime2)转换不起作用。mytime1+mytime2无论如何都不应该是一个有效的表达式,因为它们都是时间值-我无法计算出您试图用该表达式实现什么。mytime1-mytime2将为您提供一个时间间隔作为两者之间的差异,但我不认为SQLServer以这种方式允许使用datetime算法-您将不得不使用datediff。我建议使用SQLServer中现有的日期/时间函数,如datepart和datediff。我把报告中的日期减去了!我想添加time1+time2,得到总时间并在报告中显示。这应该是可能的!time1+time2在报告->中确实有效,但我丢失了正确的格式,如HH:mm@SwissCoder,听起来好像你把时间值当作持续时间来对待——我的理解是它们实际上是时间戳(像datetimestamps,但没有日期元素)。嗨,Scott,谢谢。但这不起作用。。。我想在我从另一个日期时间减去一个日期时间后,我会得到一个时间跨度或时间偏移量。。在尝试将其格式化为HH:mm时,这会以某种方式抛出一个错误