我需要以HH:MM格式生成SSRS中两个日期之间的时差。我怎样才能实现这一目标?我的数据源是MS CRM FetchXML。
例如:Date1:01/01/2016 04:05 AM Date2:01/03/2016 02:15 PM 时差应该是:58:10
此致 和Sandeep
答案 0 :(得分:2)
我可能有点太晚但需要计算两次之间的经过时间。因此我偶然发现了这个链接
以下表达对我有用。我还发现在SSRS中执行它比在SQL中更简单。
function twController(node,prop,arr,dur){
var obj,first,second,xyz,i,v,tween,html,prev,starter;
switch(node){
case "camera": obj = camera; break;
default: obj = scene.getObjectByName(node);
}
xyz = "x,y,z".split(",");
$.each(arr,function(i,v){
first = obj[prop];
second = {};
$.each(v,function(i,v){
second[xyz[i]] = v;
})
tween = new TWEEN.Tween(first)
.to(second, dur)
.onUpdate(function(){
$.each(xyz,function(i,v){
obj[prop][xyz[i]] = first[xyz[i]];
})
})
.onComplete(function(){
html = [];
$.each(xyz,function(i,v){
html.push(Math.round(first[xyz[i]]));
})
$("#camPos").html(html.join(","))
})
if(i >0){
tween.delay(250);
prev.chain(tween);
}
else{
starter = tween;
}
prev = tween;
});
starter.start();
}
上述结果将是HH:MM:SS
答案 1 :(得分:1)
试试这个:
=DateDiff(
DateInterval.Hour,CDATE("01/01/2016 04:05 AM"), CDATE("03/01/2016 02:15 PM")
) & ":" &
DateDiff(
DateInterval.Minute,CDATE("01/01/2016 04:05 AM"), CDATE("03/01/2016 02:15 PM")
) Mod 60
它将产生58:10
用包含日期时间值的字段或参数替换CDATE()。
如果有帮助,请告诉我。
答案 2 :(得分:0)
编写自定义代码以计算两个日期之间的时差,并返回一个字符串,如期待HH:MM之类
Public Function GetTimeDifference(ByVal dt1 AS DATETIME,ByVal dt2 AS DATETIME) AS String
Dim Mn AS Integer=DateDiff("n",dt1,dt2)
Dim HH AS Integer=Mn /60
Dim MM AS Integer=Mn Mod 60
Return HH.ToString() & ":" & MM.ToString()
End Function
现在将此函数称为类似
的表达式=Code.GetTimeDifference(Parameters!startDate.Value,Parameters!endDate.Value)