2015-05-06 62 views
1

我怎樣寫下面的後續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 

這個工作在SQL蟾蜍而不是在SSRS

之間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", 
+0

SSRS中的「SS」代表「SQL Server」。當然,該工具可以連接到其他數據庫,但這不是典型的配置。您的實際數據庫Oracle(如代碼所示)還是SQL Server(如工具所建議的)? –

+0

是的,它是一個SQL Server –

+0

每個字段的數據類型是什麼。你正在使用哪個版本的sql server? –

回答

2

更改TO_CHAR s到Format,TO_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 
+0

我在表達式中收到運行時錯誤 - 從字符串「29/01/2015 14:00」到類型「Date」的轉換無效。 –

+0

我根據上述日期格式猜出您的系統/報告設置需要使用dd/mm/yy格式。如果這些設置實際上是en-US,則需要mm/dd/yy;更新了我的答案。 – stubaker

+0

同樣的問題 - [rsRuntimeErrorInExpression]包含錯誤:從字符串「00/03/2015 21:45」轉換爲鍵入「日期」無效。 –