如何编写查询以显示制造日期指定为2010的移动设备?

时间:2017-07-27 11:06:48

标签: sql oracle sql-date-functions

1]

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

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

但是,发生了错误

第3行的错误:

  

ORA-00932:数据类型不一致:预期DATE得到NUMBER

帮助我解决此错误,并查询显示制造日期在2010年之前的手机!!!

2 个答案:

答案 0 :(得分:3)

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

where extract(year from date_of_manufac) < 2010;

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

where date_of_manufac < date '2010-01-01'

这是首选,因为它可以使用列上的索引 - 如果有一个索引,并且索引的使用适合于查询。

答案 1 :(得分:0)

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

我在这里添加了功能DATE_FORMATSTR_TO_DATE

尝试以上查询。