SQL:查询test_0309表当天所有的记录
注:表时间字段为time,格式为2019-3-9 00:00:00
解决:
数据库版本:Oracle 11g
SQL语句:
--方法一:对表字段不使用函数(推荐使用)
select *
from test_0309
where time >= trunc(sysdate)
and time < trunc(sysdate) + 1;
--方法二:对表字段使用trunc函数
select *
from test_0309
where trunc(time) = trunc(sysdate);
--方法三:对标字段使用to_char函数
select *
from test_0309
where to_char(time,'yyyy-mm-dd') = to_char(sysdate,'yyyy-mm-dd');
对应的执行计划(仅仅从plsqldev客户端的“解释计划”获取,其执行计划真实度不是很真,但可以作为参考对比”):
总结:
由此可知方法一对字段不适用函数的成本对比其他两种方法明显会有一定的优势,故此推荐使用第一种方法!!!
注:对比仅供参考。