为了更快的定位您的问题,请提供以下信息,谢谢
【详述】bigint类型时间戳在where条件中无法进行有效判断
【背景】根据时间范围筛选符合该时间段的订单数据
【业务影响】如果用户只存在一条记录,使用该判断无法获取结果。SQL执行结果0条
【是否存算分离】
【StarRocks版本】3.2.8
【集群规模】3FE + 3BE
【机器信息】CPU虚拟核/内存/网卡,32C/128G
【联系方式】StarRocks社区群5-月升;个人邮箱:18406505214@163.com
【附件】
执行SQL:
SELECT
f_uid
,cast(f_trade_time/1000000 AS BIGINT)
,from_unixtime(cast(f_trade_time/1000000/1000 AS BIGINT), ‘yyyy-MM-dd HH:mm:ss’) AS f_trade_at
FROM hive_catalog.database.table
WHERE dt = ‘2024-08-26’
– AND cast(f_trade_time/1000000 AS BIGINT) >= 1724601644598
– AND cast(f_trade_time/1000000 AS BIGINT) <= 1724601644598
and from_unixtime(cast(f_trade_time/1000000/1000 AS BIGINT), ‘yyyy-MM-dd HH:mm:ss’) >= ‘2024-08-26 00:00:44’
and from_unixtime(cast(f_trade_time/1000000/1000 AS BIGINT), ‘yyyy-MM-dd HH:mm:ss’) <= ‘2024-08-26 00:00:44’
and f_uid = XXXXXXX
limit 10;
发一下两种情况下的 explain costs +sql 执行计划
f_trade_time 字段是什么数据类型的
19位纳秒级别的bigint的数值