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

MySQL中INT类型毫秒时间戳的昨日数据查询优化咨询

优化方案

针对毫秒级时间戳(INT类型)的昨日数据查询,推荐以下几种更简洁高效的写法:

1. 利用UNIX_TIMESTAMP和CURDATE简化转换

SELECT *
FROM A
WHERE time1 >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 1 DAY) * 1000
  AND time1 < UNIX_TIMESTAMP(CURDATE()) * 1000;
  • CURDATE()直接返回当前日期(如2023-11-06),比DATE(SYSDATE())更简洁;
  • UNIX_TIMESTAMP(date)将日期转换为秒级时间戳,乘以1000即可得到毫秒级时间戳,避免手动计算24*3600*1000这类易出错的表达式。

2. 指定具体日期范围的写法

如果需要查询固定日期区间(比如[2023-11-05 00:00:00, 2023-11-06 00:00:00)),可以直接传入日期字符串:

SELECT *
FROM A
WHERE time1 >= UNIX_TIMESTAMP('2023-11-05') * 1000
  AND time1 < UNIX_TIMESTAMP('2023-11-06') * 1000;

额外说明

以上写法均不会对time1列进行函数操作,因此如果该列存在索引,查询可以正常利用索引提升效率,这比将time1转换为日期再比较的写法性能更优(后者会导致索引失效)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:22:46