Datediff,如果某些值为“ None”,它将起作用

时间:2019-05-03 13:52:26

标签: reporting-services

我有2个字段,分别签入和签出,它们的表达式均为

=IIF(IsNothing(Fields!CheckIn.Value), "[None]", Fields!CheckIn.Value)
=IIF(IsNothing(Fields!CheckOut.Value), "[None]", Fields!CheckOut.Value)

我想以分钟为单位计算它们之间的持续时间,但是如果其中一些值都不为零会影响它们吗?

2 个答案:

答案 0 :(得分:0)

它将不起作用,因为def notification(request): if request.user.is_authenticated: notification = Notification.objects.filter(notification_user=request.user, notification_read=False) return { 'notification':notification, return Notification.objects.none() 需要日期/日期时间值,而 <script> $(document).ready(function() { $("#notificationLink").click(function() { var data = { "type": "notification_read", "username": username, "notification_id": notification_id, } socket.send(JSON.stringify(data)); $("#notificationContainer").fadeToggle(300); $("#notification_id").fadeOut("slow"); return false; }); ... var incomingMsg = $('.incoming_msg') socket.onmessage = function(e) { console.log("message", e) var chatDataMsg = JSON.parse(e.data) incomingMsg.append('<li>' + chatDataMsg.message + ' from ' + chatDataMsg.username + '</li>') } 是varchar / char值。尝试将其替换为DATEDIFF(不带引号),这将导致输出也为空。

答案 1 :(得分:0)

这里的理想解决方案是使用原始值,而不是此处的文本框的值。如果您的值来自具有NULL值的数据集中,则可以找到差异而不必担心会格式化报表中每个值的表达式。以下表达式应计算出差异。

= IIF(IsNothing(Fields!CheckIn.Value) OR IsNothing(Fields!CheckOut.Value), "[None]", 
     DateDiff("n", Fields!CheckIn.Value, Fields!CheckOut.Value))

如果[None]CheckInCheckOut,则此表达式将产生NULL,并且如果两个值均为非null值,则返回一个以分钟为单位的差值。