You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询numeric类型timestamp列月度范围数据无结果如何解决

问题原因

  1. sessions表的timestamp字段为int类型,存储的是秒级Unix时间戳,直接与字符串格式的日期时间比较会触发隐式类型转换,既无法命中timestamp索引,也会导致匹配逻辑异常。
  2. 原查询的时间范围上限为2021-10-31 00:00:00,会遗漏10月31日全天的所有记录。

正确写法

推荐使用UNIX_TIMESTAMP函数将日期转换为Unix时间戳后比较,类型匹配且可正常使用索引,查询效率更高:

SELECT uid FROM sessions 
WHERE `timestamp` >= UNIX_TIMESTAMP('2021-10-01 00:00:00') 
AND `timestamp` < UNIX_TIMESTAMP('2021-11-01 00:00:00');

注意事项

  • 时间上限设置为次月1日0点,可自动覆盖当前月最后一天的全部时间,无需手动计算当月最后一天的23:59:59。
  • 不推荐使用FROM_UNIXTIME将timestamp字段转为日期后再比较,该写法会导致索引失效,数据量较大时查询性能极差。

内容的提问来源于stack exchange,提问作者asdasd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:24:01