基于此表,我编写了一个查询来显示制造日期在2010年之前的手机。
SELECT
ime_no,
model_name,
manufacturer,
date_of_manufac
FROM mobileinfo
WHERE date_of_manufac < 2010;
但是,发生了错误
第3行的错误:
ORA-00932:数据类型不一致:预期DATE得到NUMBER
帮助我解决此错误,并查询显示制造日期在2010年之前的手机!!!
答案 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_FORMAT
和STR_TO_DATE
。
尝试以上查询。