选择日期小于今天的行

时间:2014-04-26 21:53:45

标签: sql oracle

如何从昨天开始在Oracle DB中选择过去的行,其中created_date之类的字段是timestamp(6)

我不想比较时间,只是比较日期。

4 个答案:

答案 0 :(得分:3)

如果您想要在当前时间前一天:

select *
from table t
where created_date < sysdate - 1;

如果你想要今天之前的时间:

select *
from table t
where created_date <= trunc(sysdate);

答案 1 :(得分:1)

来自Oracle documentation on SELECT

SELECT * FROM orders
  WHERE created_date < TO_DATE('2014-04-28', 'YYYY-MM-DD');

我可以从我的应用程序中传递这种日期格式,就像一个魅力。

答案 2 :(得分:0)

您可以使用强制转换功能将时间戳作为日期处理:

SELECT cast(SYSTIMESTAMP(6) as date)
FROM   dual;

因此您可以使用&#34; yesterdate&#34;选择行日期:

select ....
where cast(SYSTIMESTAMP(6) as date) like sysdate - 1 

注意:将SYSTIMESTAMP(6)替换为具有时间戳类型的列名。

答案 3 :(得分:-1)

因为你想比较日期:

select *
from table t
where date(created_date) < DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY);