使用Crystal Reports 2016时,数据源是SQL Server 2008 R2。我是Crystal Reports的新手。现在,我被困在一个问题上,如果我有一个结束时间和长度,我需要计算一个开始时间。数据库中有一个时间格式的结束时间和一个数字格式的长度。该数字是某个活动的时间(想想会议的日志记录),以分钟为单位。我需要从时间值中减去长度,但遇到类型不匹配,似乎无法正确转换。
我尝试使用TimeValue()
将数字转换为时间值,但Formula Workshop说存在错误,应该用一个数字代替{CRV_UsageLog.Data5}
。我不确定我是有逻辑问题还是语法问题。这就是我要做的:
ShiftDateTime ({CRV_UsageLog.LogTimeStamp} - TimeValue(0,{CRV_UsageLog.Data5},0), "GMT,0,GMT" ,"" )
CRV_UsageLog.LogTimeStamp
是时间字段,而CRV_UsageLog.Data5
是表示分钟的值。我想从前者中减去后者以获得开始时间,这样我就可以在报告中显示开始时间。
我需要以某种方式封装或转义CRV_UsageLog.Data5
吗?我需要其他功能吗?
时间如下:2016-06-22 13:21:21.247
数字看起来是这样的:21
我希望我的计算值如下:2016-06-22 13:00:21.247
这就是我最终所做的,作为一个公式:
ShiftDateTime(DateAdd("n", -{CRV_UsageLog.Data5}, {CRV_UsageLog.LogTimeStamp}), "GMT,0,GMT" ,"" )