【发布时间】:2017-04-19 17:34:41
【问题描述】:
我正在尝试在 SQL Developer(使用 Oracle 数据库)中运行此 sql 查询。基本上,我想选择 A.APPT_DATE 至少 2 个月大的所有列,但我不断收到“无效月份错误” - 以粗体突出显示这一点。如果我把这个 where 子句去掉,它就可以正常工作。
SELECT D.DOC_ID AS "Doctor ID", D.STATUS, A.APPT_DATE, COUNT(DISTINCT A.APPT_ID) AS "Number of appointments", DI.CASE, P.PET_ID AS "Pet ID", P.PET_NAME AS "Pet Name"
FROM VET_DOCTOR D
JOIN
APPOINTMENT A ON (D.DOC_ID=A.DOC_ID) WHERE A.APPT_DATE <= DATE '10-January-2016'
JOIN
DIAGNOSIS DI ON (A.APPT_ID=DI.APPT_ID)
JOIN
PET P ON (A.PET_ID=P.PET_ID) WHERE DI.CASE IN('Socialisation','Dental')
GROUP BY D.DOC_ID, D.STATUS, A.APPT_DATE, A.APPT_ID, DI.CASE, P.PET_ID, P.PET_NAME;
【问题讨论】:
-
尝试将日期设为“2016 年 1 月 10 日”(不带 -)
-
哪个数据库?
-
@kevchadders 我试过并得到以下错误: 原因:输入中的文字必须与格式字符串中的文字长度相同(前导空格除外)。如果启用了“FX”修饰符,则文字必须完全匹配,没有多余的空格。
-
我假设你的代码中的那些**是错误的。附言。从您的错误消息中,它的 Oracle 作为您的数据库
-
如果表格中的日期格式不同,那么您应该使用不同的格式。
标签: sql database oracle date where-clause