如何根据Oracle SQL中的年份日期字段筛选结果?

时间:2017-12-01 11:18:05

标签: sql oracle

所以我正在编写一个程序,当给定用户输入(使用JDBC)时,一年将返回给定年份的所有订单。我将日期作为'OrderPlaced'存储在我的Orders表中,格式为'dd-MMM-YY'。但是,如果仅仅根据入境年份检索信息,我有点难过。是否使用LIKE语句?还是有一种内置的方式可以在oracle中过滤日期?
在此先感谢:)

1 个答案:

答案 0 :(得分:1)

不要将LIKE与日期一起使用。以下是三种选择:

where to_char(order_placed, 'YYYY') = :year

where extract(year from order_placed) = :year

where order_placed >= to_date(:year || '0101', 'YYYYMMDD') and
      order_placed < to_date(:year + 1 || '0101', 'YYYYMMDD')

第三个优点是最有可能在year_of_entry使用可用索引。