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

在Oracle SQL Developer中如何从timestamp列筛选指定日期的记录?

Oracle筛选timestamp类型指定日期的操作方法

以下是3种常用实现方案,按需选择即可:

方案1:TRUNC截断法(写法最简单)

直接截断timestamp的时间部分到天,和目标日期对比即可:

SELECT * 
FROM 你的表名
WHERE TRUNC(col1) = TO_DATE('2019-11-29', 'YYYY-MM-DD');

注意:该写法会对col1字段做函数计算,如果col1上有索引会导致索引失效,仅适合小表或者col1无索引的场景使用。

方案2:范围查询法(性能最优,推荐)

通过时间范围匹配覆盖当日全部timestamp值,不会对字段做函数转换,可以正常使用col1上的索引,大表查询效率最高:

SELECT *
FROM 你的表名
WHERE col1 >= TIMESTAMP '2019-11-29 00:00:00'
  AND col1 < TIMESTAMP '2019-11-30 00:00:00';

方案3:字符转换法(不推荐)

将timestamp转成日期字符串后对比,性能最差且容易因格式设置出错,非特殊场景不要使用:

SELECT *
FROM 你的表名
WHERE TO_CHAR(col1, 'YYYY-MM-DD') = '2019-11-29';

额外注意事项

  • 所有场景都建议显式做类型转换,不要依赖隐式转换,避免会话日期格式不同导致的查询错误
  • 如果需要筛选其他日期,只需要替换对应日期值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:24:00