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