请问这个代码错在哪?

[复制链接]
查看11 | 回复9 | 2011-2-18 11:43:35 | 显示全部楼层 |阅读模式
本帖最后由 megxb 于 2011-11-8 09:05 编辑
这个代码有什么错误?
select first_name,to_char(hire_date,'mm') as hire_date from employees
where hire_date='02';
错误提示是:
ORA-01840: 输入值对于日期格式不够长
01840. 00000 -"input value not long enough for date format"
*Cause:
*Action:

回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
SELECT FIRST_NAME,TO_CHAR(HIRE_DATE,'MM') AS HIRE_DATE
FROM EMPLOYEES
WHERE TO_CHAR(HIRE_DATE,'MM')='02';
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
where hire_date='02';
这个要改成日期型的。'02'可能没有办法成功转成日期型的了。
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
Jeanvixue 发表于 2011-11-8 09:02
where hire_date='02';
这个要改成日期型的。'02'可能没有办法成功转成日期型的了。

to_char不是已经把hire_date转成字符型了么?为什么字符型‘02’不可以啊?
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
accphaijiang 发表于 2011-11-8 09:02
SELECT FIRST_NAME,TO_CHAR(HIRE_DATE,'MM') AS HIRE_DATE
FROM EMPLOYEES
WHERE TO_CHAR(HIRE_DATE, ...

为什么要用TO_CHAR(HIRE_DATE,'MM')代替hire_date啊,TO_CHAR(HIRE_DATE,'MM') AS HIRE_DATE 这个代码不是已经把hire_date定义成TO_CHAR(HIRE_DATE,'MM')的别名了么?
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
megxb 发表于 2011-11-8 09:13
为什么要用TO_CHAR(HIRE_DATE,'MM')代替hire_date啊,TO_CHAR(HIRE_DATE,'MM') AS HIRE_DATE 这个代码不是 ...

............
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
accphaijiang 发表于 2011-11-8 09:17
............

列的别名不可以这么使用么?
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
to_char转的是select部分,和where部分有啥关系啊
where部分,日期=字符串,字符串与日期比较会自动转为日期,so你的格式无法自动转换,因此报错
好好看基础吧。你这基础有点差
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
dingjun123 发表于 2011-11-8 09:24
to_char转的是select部分,和where部分有啥关系啊
where部分,日期=字符串,字符串与日期比较会自动转为日 ...

如果改成select first_name,to_char(hire_date,'mm') as h
from employees where h='02';
错误提示是ORA-00904: "H": 标识符无效
00904. 00000 -"%s: invalid identifier",
我把to_char(hire_date,'mm') 定义为h,where后不可以引用h么?
回复

使用道具 举报

千问 | 2011-2-18 11:43:35 | 显示全部楼层
dingjun123 发表于 2011-11-8 09:24
to_char转的是select部分,和where部分有啥关系啊
where部分,日期=字符串,字符串与日期比较会自动转为日 ...

我是初学者,问题幼稚请见谅,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行