我对此查询存在一些问题。
我正在尝试创建一个查询,用户可以在运行时输入2个日期。它要求我提供输入,包括开始日期和结束状态,但是,然后它会出现:ORA-00904: "JAN": invalid identifier
我的查询目前是:
SELECT p.FirstName, p.email, a.Avatar_Name, s.Species_Name, a.Avatar_Level, a.Skill, s.Wisdom_Level, a.AvA_DOB, a.Hoard
FROM Players P, Avatars A, Species S
WHERE a.Player_ID = p.Player_ID
AND a.Species_ID = s.Species_ID
AND Avatar_Level = 'Master'
AND AvA_DOB BETWEEN &startdate AND &enddate
ORDER BY Hoard DESC;
我希望用户能够在用户输入的两个日期之间找到一个头像列表。 有什么帮助吗?如果需要更多信息,请询问! (: (SQL PLUS)
答案 0 :(得分:1)
SQL中的日期值需要用单引号括起来。 Oracle会将这些字符串转换为日期数据类型,但使用具有预期格式掩码的显式转换会更安全。
SELECT p.FirstName, p.email, a.Avatar_Name, s.Species_Name, a.Avatar_Level, a.Skill, s.Wisdom_Level, a.AvA_DOB, a.Hoard
FROM Players P, Avatars A, Species S
WHERE a.Player_ID = p.Player_ID
AND a.Species_ID = s.Species_ID
AND Avatar_Level = 'Master'
AND AvA_DOB BETWEEN to_date('&startdate', 'dd-mmm-yyyy')
AND to_date('&enddate', 'dd-mmm-yyyy')
ORDER BY Hoard DESC;