首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle sql to_date on timestamp + interval。哪个更理想?

Oracle sql to_date on timestamp + interval。哪个更理想?
EN

Stack Overflow用户
提问于 2016-11-21 23:19:45
回答 2查看 752关注 0票数 0

我很好奇包含比较语句的oracle SQL查询的最优/高效语法是什么:

代码语言:javascript
复制
WHERE time_stamp + INTERVAL '+1' HOUR
        BETWEEN to_date('13-08-2016 17:02', 'dd-mm-yyyy hh24:mi:ss')
            AND to_date('21-11-2016 16:02', 'dd-mm-yyyy hh24:mi:ss')

代码语言:javascript
复制
WHERE time_stamp
        BETWEEN to_date('13-08-2016 17:02', 'dd-mm-yyyy hh24:mi:ss') - INTERVAL '+1' HOUR
            AND to_date('21-11-2016 16:02', 'dd-mm-yyyy hh24:mi:ss') - INTERVAL '+1' HOUR

sql解析器会做优化工作吗?

EN

回答 2

Stack Overflow用户

发布于 2016-11-21 23:23:45

我建议将这些内容写成:

代码语言:javascript
复制
WHERE time_stamp BETWEEN TIMESTAMP '2016-08-13 17:02:00' - INTERVAL '1' HOUR AND 
                         TIMESTAMP '2016-11-21 16:02:00' - INTERVAL '1' HOUR

对ISO格式的常量使用DATETIMESTAMP只是让代码更整洁(在我看来)。

此外,在“常量”上使用日期算法可以使优化器更容易使用索引(如果有合适的索引)。

票数 2
EN

Stack Overflow用户

发布于 2016-11-21 23:22:54

取决于您是否对该time_stamp列有索引。如果有索引,最好不要对该列执行任何表达式或函数。因此,如果该列有索引,则第二个查询的性能会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40723523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档