1

如何在当前日期两周后提取日期?

例子

SELECT blabla
FROM table
WHERE blabla IN [sysdate + 2 weeks]
4

3 回答 3

9

怎么样 ... ?

SELECT blabla
  FROM table
 WHERE blabla > SYSDATE AND blabla < SYSDATE +14;

SYSDATE +x意味着x从现在开始的几天。

ps:对于现在日期为 +14的记录,请使用 ...

SELECT blabla
  FROM table
 WHERE blabla LIKE SYSDATE +14;

pps正如 Ben 在下面指出的那样,使用存在潜在风险,LIKE因为它取决于nls_date_format参数。注意设置适当的格式或查看 Gordons 方法。@Ben:感谢您的注意。

希望这会有所帮助......干杯!

于 2013-04-21T19:29:41.123 回答
3

当你这样做时,你需要注意时间分数。如果您不关心索引,那么您可以执行以下操作:

where trunc(blabla) = trunc(sysdate) + 14

但是,由于该功能,这可能会排除索引的使用。解决这个问题的一种方法是:

where blabla >= trunc(sysdate) + 14 and blabla < trunc(sysdate) + 15
于 2013-04-21T19:52:31.473 回答
1

为了更加符合标准并避免类型转换,请使用 CURRENT_DATE 获取日期,并使用 INTERVAL 为其添加时间间隔。

SELECT blabla
FROM table
WHERE blabla = CURRENT_DATE + INTERVAL '14' DAY
于 2013-04-22T00:43:21.263 回答