如何编写查询以显示制造日期指定为 2010 的手机?

How to write a query to display the mobiles whose manufacturing date is specified as 2010?

基于此table,我编写了一个查询来显示制造日期在 2010 年之前的手机。

SELECT
  ime_no,
  model_name,
  manufacturer,
  date_of_manufac
FROM mobileinfo
WHERE date_of_manufac < 2010;

但是,发生了错误

第 3 行错误:

ORA-00932: inconsistent datatypes: expected DATE got NUMBER

帮助我解决此错误以及显示制造日期早于 2010 年的手机的查询!!!

select ime_no,model_name,manufacturer,date_of_manufac
from mobileinfo
where STR_TO_DATE(DATE_FORMAT(date_of_manufac,%Y),%Y)<2010;

这里我添加了函数DATE_FORMAT and STR_TO_DATE

尝试上面的查询。

一种方法是从日期中提取年份:

where extract(year from date_of_manufac) < 2010;

更一般地,只需使用日期比较:

where date_of_manufac < date '2010-01-01'

这是更可取的,因为它可以在列上使用索引——如果索引可用并且索引的使用适合查询。