Sql Where子句不适用于日期
可能重复:Sql Where子句不适用于日期,sql,oracle10g,Sql,Oracle10g,可能重复: 当我处理日期数据类型时,where子句并没有区别。下面的代码显示所有107行。它应该显示大约5行。也没有语法错误。Where子句适用于数字、字符等 select last_name,hire_date from employees where hire_date < '01-JAN-90' 选择姓氏、雇用日期 来自员工 何处租用日期
当我处理日期数据类型时,where子句并没有区别。下面的代码显示所有107行。它应该显示大约5行。也没有语法错误。Where子句适用于数字、字符等
select last_name,hire_date
from employees
where hire_date < '01-JAN-90'
选择姓氏、雇用日期
来自员工
何处租用日期<'01-JAN-90'
试试:
选择姓氏、雇用日期
来自员工
其中租用日期<日期'1990-01-01'
下面是一个运行示例:
CREATE TABLE Employees(
姓氏VARCHAR(50),
租用日期
);
在员工价值观中插入(“A”,日期“1985-01-01”);
在员工价值观中插入(“B”,日期“1986-01-01”);
在员工价值观中插入(“C”,日期“1987-01-01”);
在员工价值观中插入('D',日期'1988-01-01');
在员工价值观中插入('E',日期'1989-01-01');
在员工价值观中插入(“F”,日期“1990-01-01”);
插入员工价值观(“G”,日期“1991-01-01”);
在员工价值观中插入(“H”,日期“1992-01-01”);
在员工价值观中插入('I',日期'1993-01-01');
在员工价值观中插入('J',日期'1994-01-01');
在员工价值观中插入(“K”,日期“1995-01-01”);
在员工价值观中插入(“L”,日期“1996-01-01”);
在员工价值观中插入(“M”,日期“1997-01-01”);
在员工价值观中插入('N',日期'1998-01-01');
选择姓氏、雇用日期
来自员工
其中租用日期<日期'1990-01-01'
试试:
选择姓氏、雇用日期
来自员工
其中租用日期<日期'1990-01-01'
下面是一个运行示例:
CREATE TABLE Employees(
姓氏VARCHAR(50),
租用日期
);
在员工价值观中插入(“A”,日期“1985-01-01”);
在员工价值观中插入(“B”,日期“1986-01-01”);
在员工价值观中插入(“C”,日期“1987-01-01”);
在员工价值观中插入('D',日期'1988-01-01');
在员工价值观中插入('E',日期'1989-01-01');
在员工价值观中插入(“F”,日期“1990-01-01”);
插入员工价值观(“G”,日期“1991-01-01”);
在员工价值观中插入(“H”,日期“1992-01-01”);
在员工价值观中插入('I',日期'1993-01-01');
在员工价值观中插入('J',日期'1994-01-01');
在员工价值观中插入(“K”,日期“1995-01-01”);
在员工价值观中插入(“L”,日期“1996-01-01”);
在员工价值观中插入(“M”,日期“1997-01-01”);
在员工价值观中插入('N',日期'1998-01-01');
选择姓氏、雇用日期
来自员工
其中租用日期<日期'1990-01-01'
永远不要依赖隐式转换。使用:
where hire_date < to_date('01-JAN-1990', 'DD-MON-YYYY')
其中雇佣日期<截止日期('1990年1月1日,'DD-MON-YYYY')
永远不要依赖隐式转换。使用:
where hire_date < to_date('01-JAN-1990', 'DD-MON-YYYY')
其中雇佣日期<截止日期('1990年1月1日,'DD-MON-YYYY')
很抱歉,此代码不起作用。@ankitaP很抱歉,我无法进一步帮助您,除非我知道您看到了什么问题或您期望有什么不同。我已经发布了我用来测试答案的代码。我的EMPLOYEES表已经存在,它包含107行。我上面写的SELECT..FROM..WHERE语句不能处理DATE,因为它不能隐式执行类型转换。嗯,我得到了达扎尔给我的答案。谢谢你帮助我。干杯抱歉,此代码不起作用。@ankitaP很抱歉,我无法进一步帮助您,除非我知道您看到了什么问题或您期望有什么不同。我已经发布了我用来测试答案的代码。我的EMPLOYEES表已经存在,它包含107行。我上面写的SELECT..FROM..WHERE语句不能处理DATE,因为它不能隐式执行类型转换。嗯,我得到了达扎尔给我的答案。谢谢你帮助我。干杯@ankitaP-此比较仅在给定文本为默认日期格式时有效。对于所有其他格式,我们必须使用to_date将文字转换为日期function@ankitaP-此比较仅在给定文字为默认日期格式时有效。对于所有其他格式,我们必须使用to_date函数将文本转换为日期
where hire_date < to_date('01-JAN-1990', 'DD-MON-YYYY')