时间日期字段过滤的问题
本帖最后由 ccraise 于 2022-12-13 20:47 编辑对自建表设计查询,用JPQL,使用了聚合函数,同时添加了 group by 语句进行分组,
然后就发现一个问题:
自建表中有个字段,类型是datetime,但这个字段不在查询语句中,
现在把这个字段添加到自定义过滤里面,类型选择“日期时间”,为的是能够实现在页面上根据时间段进行统计,
然而,却发现过滤出来的结果根本就不正确
这是个BUG吗?还是有什么特殊的机制我不知道呢?
参考:https://www.o2oa.net/cms/datacenter/177.html 论坛管理员 发表于 2022-12-14 09:44
参考:https://www.o2oa.net/cms/datacenter/177.html
这个参考没有用啊,我的jpql中没有使用时间日期字段,而是在视图上配置“过滤”时选择了日期时间字段
JPQL是这样的:
SELECT o.shqr,count(o.id) as wtshl, sum(o.chll) as chllhj,
sum(o.xyshch),max(o.xyshch),min(o.xyshch),
sum(o.chlshch),max(o.chlshch),min(o.chlshch)
FROM mygzjlbook o
group by o.shqr order by wtshl desc,chllhj desc
这里面,自定义表 mygzjlbook 中有个字段 tjshj 类型是日期时间,但是并没有出现在JPQL里面
视图过滤是这样的:
现在是这个视图上配置的这个过滤条件不能正确过滤出正确结果呢
没有复现出您的问题,您这个字段里存储的是日期+时间吗?
论坛管理员 发表于 2022-12-14 16:15
没有复现出您的问题,您这个字段里存储的是日期+时间吗?
自建表定义如下,其中tjshj的类型是datetime:
查看数据库里面的字段类型,也是datetime:
查看数据库里面存储的数据,也都是正常的,注意这里面12月4号到12月10号之间是有数据的:
查询的JPQL是这样的:
SELECT o.fzhfl,count(o.id) as wtsh,sum(o.chll) chllhj,
sum(o.xyshch), max(o.xyshch),min(o.xyshch),
sum(o.chlshch), max(o.chlshch),min(o.chlshch)
FROM mygzjlbook o group by o.fzhfl order by wtsh desc,chllhj desc
视图上的过滤是这样配置的:
然后在查询的时候,过滤的时间范围选择12月4日到10日,这个时间范围应该有数据,但过滤的结果却是空的:
您F12看一下网络请求是否正常?您的o2oa的版本是多少? 论坛管理员 发表于 2022-12-15 09:44
您F12看一下网络请求是否正常?您的o2oa的版本是多少?
o2oa版本:7.2.7
怀疑是数据库兼容问题,我这个环境用的是mariadb,然后重新部署了个环境,试了下MySQL 8,结果直接报错了
jpql中查询指定属性模式暂时不支持视图方式展现,因为返回出来的是没有属性名称的,得按第几列方式展现,你可以在不报错的环境测试下f12看看查询结果有没有返回数据,是不是数据有返回但视图没有展现,现阶段只能业务自己写视图展现 启蒙星 发表于 2022-12-15 17:10
jpql中查询指定属性模式暂时不支持视图方式展现,因为返回出来的是没有属性名称的,得按第几列方式展现,你 ...
视图上是使用列号展示的,所以并不存在你说的问题。这个查询在打开的时候是有数据的,但是一添加日期时间过滤就查不出来了。
另外,换成mysql,直接就在页面上报错,说日期格式错误,但是这个日期是从系统自己的过滤条件设置那得来的,不是我手写的,是设置过滤条件时自己生成的,不存在格式不正确的问题 视视图使用列号也不支持展现,返回的数据没有列号key,除非这个视图是你自己写的,你f12看看执行的url是否有返回正确的结果
页:
[1]
2