比较日期与CURRENT_DATE在甲骨文
我不能得到什么在此查询是错误的(Oracle查询)比较日期与CURRENT_DATE在甲骨文
SELECT *
FROM HR.CUSTOMER C
dual
WHERE CREATED_AT = current_date
;
我收到此错误
ORA-00933: SQL command not properly ended
在Oracle它不是current_date
,但sysdate
现在和trunc(sysdate)
今天。
此外,在您的查询中有太多dual
。
select *
from hr.customer
where created_at = trunc(sysdate);
嗨Thorsten,Oracle中有CURRENT_DATE函数,但它根据客户端的时区返回当前的日期和时间。 SYSDATE返回服务器时区中的当前日期。但是考虑到该字段被称为“CREATED_AT”,我希望它能够更好地填充SYSDATE以使其在不同时区内保持一致。 Felix – fhossfel
@fhossfel:谢谢菲利克斯,我不知道。所以'CURRENT_DATE'确实存在,但我们不可能在这里使用它。谢谢你的解释。 –
既然你已经知道了表,并希望得到所有从它的列,你不需要使用双
DUAL表是特殊的一排,一列目前由表在Oracle和其他数据库安装中默认为 。在Oracle中, 表具有一个名为DUMMY的VARCHAR2(1)列,其值为 'X'。它适用于选择伪列,如 SYSDATE或USER。
你可能只是使用下面的查询,而不是
SELECT *
FROM HR.CUSTOMER
WHERE CREATED_AT = current_date;
删除'dual',然后再试一次。 – krokodilko