起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3840|回复: 7

[结贴] KSQL算时间差

[复制链接]

157

主题

600

帖子

937

积分

高级会员

Rank: 4

积分
937
QQ
发表于 2017-12-18 18:19:11 | 显示全部楼层 |阅读模式
本帖最后由 zyzn123 于 2017-12-18 18:22 编辑

1 查看api
dateDiff (String datePart, Date startDate, Date endDate),想算fBeginTime和fEndTime时间的分钟差,此fBeginTime和fEndTime均为DateTime类型。

自己书写的KSQL为:
select OA_MT_RoomArrange.*,(select  dateDiff('minute', OA_MT_RoomArrangeNewDate.fBeginTime, OA_MT_RoomArrangeNewDate.fEndTime) as arrangeDate from OA_MT_RoomArrange OA_MT_RoomArrangeNewDate) as arrangeDate
    from OA_MT_RoomArrange OA_MT_RoomArrange

之后通过dateTimeToDate转Date也不行
select OA_MT_RoomArrange.*,(select  dateDiff('minute', dateTimeToDate(OA_MT_RoomArrangeNewDate.fBeginTime), dateTimeToDate(OA_MT_RoomArrangeNewDate.fEndTime)) as arrangeDate from OA_MT_RoomArrange OA_MT_RoomArrangeNewDate) as arrangeDate
    from OA_MT_RoomArrange OA_MT_RoomArrange

运行KSQL,抛出错误:

不支持KSQL函数DATEDIFF
at com.justep.exception.BusinessException.create(Unknown Source)
at com.justep.util.Utils.check(Unknown Source)
at

157

主题

600

帖子

937

积分

高级会员

Rank: 4

积分
937
QQ
 楼主| 发表于 2017-12-18 21:10:44 | 显示全部楼层
提示: 不支持KSQL函数DATEDIFF
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-19 08:58:29 | 显示全部楼层
dateDiff 是平台提供的表达式函数,不是KSQL的函数

ksql中可以以':'开头使用表达式函数,但是在select部分不能使用,表达式函数是在内存中计算的,先执行内存函数,然后执行sql,执行内存函数的时是取不到关系的值的,可以用SQL.调用数据库函数实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

157

主题

600

帖子

937

积分

高级会员

Rank: 4

积分
937
QQ
 楼主| 发表于 2017-12-19 09:42:35 | 显示全部楼层
我想在KSQL中查出时间差,这个我具体怎么操作?求指导?

你说的,我具体还是不太明白怎么操作?
回复 支持 反对

使用道具 举报

157

主题

600

帖子

937

积分

高级会员

Rank: 4

积分
937
QQ
 楼主| 发表于 2017-12-19 09:56:18 | 显示全部楼层
mysql数据库中有TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)  

select OA_MT_RoomArrange.*,
(select  (TIMESTAMPDIFF(MINUTE,OA_MT_RoomArrangeNewDate.fBeginTime,OA_MT_RoomArrangeNewDate.fEndTime)) as arrangeDate from OA_MT_RoomArrange OA_MT_RoomArrangeNewDate) as arrangeDate
    from OA_MT_RoomArrange OA_MT_RoomArrange

提示:编码: JUSTEP154020; 提示: 不支持KSQL函数TIMESTAMPDIFF
at com.justep.exception.BusinessException.create(Unknown
回复 支持 反对

使用道具 举报

157

主题

600

帖子

937

积分

高级会员

Rank: 4

积分
937
QQ
 楼主| 发表于 2017-12-19 10:09:33 | 显示全部楼层
我想统计会议室预定总的时间,在会议室安排中有开始时间和结束时间,如果无法在select中使用DATEDIFF和TIMESTAMPDIFF,那我怎么去统计这些数据?

BeX5有专门统计时间差的实例吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-19 10:22:02 | 显示全部楼层
SQL.TIMESTAMPDIFF(XXX)这样调用
3楼已经说了用SQL.
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

157

主题

600

帖子

937

积分

高级会员

Rank: 4

积分
937
QQ
 楼主| 发表于 2017-12-19 10:39:21 | 显示全部楼层
解决了,谢谢了,结帖吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-1 03:25 , Processed in 0.052988 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表