Oracle 日期查询比较问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 19:01:08
select to_char(add_time,'yymmdd') time from video where time in (select to_char(sysdate-2,'yymmdd') from dual)

为什么在SQL*PLUS中提示我说“time为无效列名”啊

我的这个SQL语句那写错了?
yishunli 兄弟 我不知道别的数据库别名用不用加“”,好像Oracle不用吧!!!

我把time 换成表里面有的字段了,可是还报错

select to_char(add_time,'yymmdd') add_time from video where add_time in (select to_char(sysdate-2,'yymmdd') from dual)
*
ERROR 位于第 1 行:
ORA-01861: 文字与格式字符串不匹配

但是 select to_char(sysdate-2,'yymmdd') from dual 可以单独执行啊

time是你 给to_char(add_time,'yymmdd') 取的一个别名吧,应该用””给括起来,
另外你的time in 应该是你要查询的列名应该用”表名.列名 like '' ”这样的表达式

这样:
select to_char(add_time,'yymmdd') add_time from video where to_char(add_time,'yymmdd') in (select to_char(sysdate-2,'yymmdd') from dual)

原因是先条件后显示,如果你硬要用“add_time in (select to_char(sysdate-2,'yymmdd') from dual)

语句就要这样:

select * from (select to_char(add_time,'yymmdd') add_time from video ) where add_time in (select to_char(sysdate-2,'yymmdd') from dual)

在 in 后面的 查询语句 前 也加个 to_char试试