赞
踩
先说需求:计算今日复访用户数,要求该用户前3天内有访问该直播间的记录
需求分析:
数据处理:
看似简单的逻辑,遇到了一个小问题
userLastVisitRoomTime 表中,最近访问时间(last_visit_time)的类型为bigint,即秒级时间戳。一开始写sql时,使用了TIMESTAMPDIFF方法
TIMESTAMPDIFF(DAY,last_visit_time,current_datetime) < 4
错误的理解: last_time_visit 和 current_datetime 相差的天数,比如 2021-02-21 12:00:00 和 2021-02-22 08:00:00 相差一天。
测试数据的时候发现,并没有这么简单呀。相差的天数对不上,比如我在2021-02-22 21:39:10 时,测试 2021-02-20 00:00:00 到目前是1天相差,是对的,为了测试时区问题,我测试了 2021.02.21 23:59:00 的数据发现相差天数变成了 0 .......
是不是很奇怪,这和我理解的出现了偏差。
一开始以为是时区问题,使用 flinksql-client 测试几个小sql,发现时区问题也是正常解决的,那么问题出现在哪里???
看了下官方文档
此处为什么会拿 10:00:00 到次日 10:00:00 举例?
莫非这个 "DAY" 的度量是24小时?1440分钟?86400秒?
那就要验证下这个想法了,最后发现还真是。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。