如何从昨天开始在Oracle DB中选择过去的行,其中created_date
之类的字段是timestamp(6)
?
我不想比较时间,只是比较日期。
答案 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);