找文章 / 找答案
精选问答 更多内容

根据时间计算时长

yhdata_q4Ds1Z9P玄铁三 显示全部楼层 发表于 2024-12-3 14:00:42 |阅读模式 打印 上一主题 下一主题
5
未解决

根据时间计算时长

137 10
如何根据截止日期下拉框里面的值和用户最后一次登录时间计算出未登录时长 , 然后根据时长来排序



回复

使用道具 举报

精彩评论10

yhdata_lyaa 显示全部楼层 发表于 2024-12-3 14:06:17
新建计算列 dategaph函数 比较参数和最后一次登录时间字段
https://www.yonghongtech.com/rea ... ighlightsub=dategap
回复

使用道具 举报

yhdata_q4Ds1Z9P玄铁三 显示全部楼层 发表于 2024-12-3 14:14:48
yhdata_lyaa 发表于 2024-12-3 14:06
新建计算列 dategaph函数 比较参数和最后一次登录时间字段
https://www.yonghongtech.com/real-help/Z-Suit ...

请问我截止日期里面的值在计算机列那里能找到?
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-12-3 14:28:21
yhdata_q4Ds1Z9P 发表于 2024-12-3 14:14
请问我截止日期里面的值在计算机列那里能找到?

截止日期是下拉参数组件吗,单选还是多选的
单选 param['下拉参数']
回复

使用道具 举报

yhdata_q4Ds1Z9P玄铁三 显示全部楼层 发表于 2024-12-3 15:04:48
yhdata_lyaa 发表于 2024-12-3 14:28
截止日期是下拉参数组件吗,单选还是多选的
单选 param['下拉参数']

对的 是下拉参数,像最后登录时长有些用户为空的话,datagap会报空指针,这种怎么弄了?
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-12-3 15:18:32
yhdata_q4Ds1Z9P 发表于 2024-12-3 15:04
对的 是下拉参数,像最后登录时长有些用户为空的话,datagap会报空指针,这种怎么弄了? ...

计算列判断为空另外赋值呢,大概这样写
if  空
then  0
else datagap
end
回复

使用道具 举报

yhdata_q4Ds1Z9P玄铁三 显示全部楼层 发表于 2024-12-3 16:13:15
哥 我写了三种 好像都不行,帮忙指导指导
1. iif(
    isNull(col['最后一次登录时间']),'0',dateGap(col['最后一次登录时间'],col['START_DATE'],'day') )      
2. if(col['最后一次登录时间'] is NULL))
THEN  '0'
ELSE datagap(col['最后一次登录时间'],param['截止日期'],dayofyaer)
END

3.SELECT
        USER_ID,
        CASE
                when col['最后一次登录时间'] IS NULL THEN '从未登录过'
                ELSE DATEIFF(day,col['最后一次登录时间'],param['截止日期'])
        END AS days_since_last_login
FROM
        USER;
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-12-3 16:31:13
yhdata_q4Ds1Z9P 发表于 2024-12-3 16:13
哥 我写了三种 好像都不行,帮忙指导指导
1. iif(
    isNull(col['最后一次登录时间']),'0',dateGap(col[' ...

if(isNull(col['最后一次登录时间'])==true)
THEN  '0'
ELSE datagap(col['最后一次登录时间'],param['截止日期'],dayofyaer)
END
回复

使用道具 举报

yhdata_q4Ds1Z9P玄铁三 显示全部楼层 发表于 2024-12-3 17:10:26
yhdata_lyaa 发表于 2024-12-3 16:31
if(isNull(col['最后一次登录时间'])==true)
THEN  '0'
ELSE datagap(col['最后一次登录时间'],param['截 ...

var a = dateGap(col['最后一次登录时间'],col['START_DATE'],"dayofyear")
iif(isNull(col['最后一次登录时间'])==true,'未登录',a)

这种能将最后登录时间为空返回为‘未登录’,但是dategap函数计算出来的无法显示,报错显示为强类型转换失败,请问这个dategap出来的是一个数值嘛?
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-12-3 17:33:09
yhdata_q4Ds1Z9P 发表于 2024-12-3 17:10
var a = dateGap(col['最后一次登录时间'],col['START_DATE'],"dayofyear")
iif(isNull(col['最后一次登 ...

计算结果是数值
检查一下 col['最后一次登录时间'],param['截止日期']  都是日期类型吗
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部