Sql SSR计算两个日期之间的持续时间

Sql SSR计算两个日期之间的持续时间,sql,reporting-services,ssrs-2008-r2,ssrs-2012,Sql,Reporting Services,Ssrs 2008 R2,Ssrs 2012,如何在SSRS表达式中编写下面的SSRS计算 下面是实际计算示例 =((deldate+deltime)–(orddate+ordtime))*24 deldate delTime orddate ordTime *24 13/01/2015 14:25 14/01/2015 13:55 23.50 20/01/2015 12:00 20/01/2015 17:02 5.03 这在sqltoad中有效,但在SSRS中无效 (TO_DATE(TO_C

如何在SSRS表达式中编写下面的SSRS计算

下面是实际计算示例
=((deldate+deltime)–(orddate+ordtime))*24

deldate     delTime  orddate    ordTime  *24
13/01/2015  14:25   14/01/2015  13:55    23.50
20/01/2015  12:00   20/01/2015  17:02    5.03
这在sqltoad中有效,但在SSRS中无效

(TO_DATE(TO_CHAR(A.DELDATE,'DD/MM/YYYY') ||' '|| TO_CHAR(A.DELTIME,'HH24:MI'),'DD/MM/YYYY HH24:MI') - TO_DATE(TO_CHAR(A.ORDDATE,'DD/MM/YYYY') ||' '|| TO_CHAR(A.ORDTIME,'HH24:MI'),'DD/MM/YYYY HH24:MI'))*24 AS "DiffinHours",

更改为\u CHAR
s为
格式
更改为\u DATE
s为
CDate
,并使用
DateDiff
代替减法。要以小数表示小时,请找出以分钟为单位的差值,然后除以60.0:

=DateDiff(DateInterval.Minute, 
          CDate(Format(Fields!deldate.Value, "MM/dd/yyyy") & " " & Format(Fields!deltime.Value, "HH:mm")), 
          CDate(Format(Fields!orddate.Value, "MM/dd/yyyy") & " " & Format(Fields!ordtime.Value, "HH:mm"))
         ) / 60.0

SSRS中的“SS”代表“SQL Server”。当然,该工具可以连接到其他数据库,但这不是典型的配置。您的实际数据库是Oracle(如代码所示)还是SQL Server(如工具所示)?是的,它是SQL Server每个字段的数据类型是什么。另外,您使用的是哪个版本的sql server?数据类型=所有4个字段的日期deldate、deltime、orddate和ordtimeI我在表达式中遇到运行时错误-从字符串“29/01/2015 14:00”转换为类型“DATE”无效。根据上述日期格式,我猜测您的系统/报表设置需要采用dd/mm/yy格式。如果这些设置实际上是en-US,则需要mm/dd/yy;更新了我的答案。同一问题-[rsRuntimeErrorInExpression]包含错误:从字符串“00/03/2015 21:45”转换为类型“Date”无效。您需要查看源查询中的数据;我不确定在没有月份的情况下如何创建date类型的字段。好吧-这似乎部分有效,但是,如果超过2天或4天,为什么我会在某些结果上出现#错误和一些奇怪的数字格式?