我在数据库中存储了字符串值,比如“下午4:30”,我在Birt中获取它。我想将这个值转换为分钟。有什么方法/方法(在birt/database中)来做到这一点吗?(夹板及加法除外)
P.S.:我想找出“下午4:30”和“04:45”之间的分钟差异(存储在时间上)。
我在使用Postgres数据库。
发布于 2015-01-13 01:23:57
我同意Frank的意见,将字符串类型存储在数据库中表示时间值是非常不有效的设计。然而,有时我们不可能轻易地改变这一点。下面是如何用BIRT解析这样的格式。
在dataset中创建计算列,将"Time“设置为dataType,然后输入为表达式:
var dateFormat = new java.text.SimpleDateFormat("hh:mm a",java.util.Locale.ENGLISH);
dateFormat.parse(row["timeString"]);
当然,"timeStr“是该字符串格式的时间列的名称。如果数据集应该处理大量卷,则可以通过在"dateFormat“事件中只对”beforeOpen“进行一次初始化来优化该表达式。
对于第二个问题,Birt有一个本机静态函数来获得分钟内的差异:
BirtDateTime.diffMinute(time1, time2);
https://stackoverflow.com/questions/27916489
复制相似问题