oracle的timestamp类型精确到日期判断大小的常用方式比较

比如想查询在某天之后的数据,这样就需要将timestamp类型的时间字段精确到日期再判断查询。不知对于这种情况常用的方式是什么。

现在找到了两种解决方案:

  1. to_char(sysdate,'yyyy-mm-dd') 做日期格式化;
  2. trunc(sysdate) 做截取;

搜索时瞄到一眼,据说:

to_char会将日期格式化为字符串,若是之前日期字段有索引,这样做,索引就废掉了。

trunc好像是截取到最近的日期,对时间部分补“00:00:00”。

实际使用中这两者常用哪个,有什么具体优缺点么,还是说有其他更好的方式。

阅读 12.7k
1 个回答
SELECT 1 FROM dual
WHERE SYSDATE > to_timestamp('2018-06-01', 'yyyy-mm-dd')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏