我试图返回信息,在我的桌子上的汽车‘汽车’,其中有MOT在未来2周内到期。MOTDUE被定义为to_date('2015-03-25', 'yyyy-mm-dd');
SELECT * FROM Cars WHERE MOTDUE = CURRENT_DATE + INTERVAL '2' WEEK;只是给我“丢失或无效的日期时间字段”错误。
谢谢。
发布于 2015-03-23 17:29:27
根据您所说的“在未来两周内”的含义,并假设MOTDUE列的数据类型是DATE,那么下面的内容应该给您所需要的(或者至少允许您适当地修改):
select *
from cars
where motdue < trunc(sysdate) + 14
and motdue >= trunc(sysdate);发布于 2015-03-23 17:29:08
试试这个:
SELECT * FROM Cars WHERE MOTDUE = CURRENT_DATE + INTERVAL '14' DAY;发布于 2015-03-23 19:07:05
Oracle-YEAR TO MONTH和DAY TO SECOND中有两种类型的DAY TO SECOND。因此,YEAR、MONTH、DAY、HOUR、MINUTE和SECOND都是有效的增量。不幸的是,WEEK不是(不幸的是,FORTNIGHT也不是)。ANSI标准的方法如下所示:
SELECT * FROM cars
WHERE motdue >= CURRENT_DATE
AND motdue < CURRENT_DATE + INTERVAL '14' DAY;上面的问题是,在甲骨文中,ANSI -标准CURRENT_DATE不遵守ANSI标准-它有一个时间部分,就像SYSDATE一样。如果你不想在午夜缩短约会时间,那就好了。
https://stackoverflow.com/questions/29216504
复制相似问题