如何在Oracle中采用特定日期的昨天日期时间?

时间:2018-11-19 11:17:25

标签: sql oracle timestamp

我需要采用昨天的值,例如:

18-11-2018 06:00:00
select (systimestamp - 1) as ts_bytes from dual;

时间固定的地方。

3 个答案:

答案 0 :(得分:1)

我认为您正在寻找这个:

select TRUNC(systimestamp - 1) + INTERVAL '6' HOUR as ts_bytes 
from dual;

TRUNC(systimestamp) - INTERVAL '18' HOUR

或者如果您更喜欢DATE值而不是TIMESTAMP

select TRUNC(SYSDATE - 1) + 6/24 as ts_bytes 
from dual;

答案 1 :(得分:0)

如果要在昨天的午夜(00:00:00)进行操作,则将当前时间戳截断为今天的开始,然后减去一天:

SELECT TRUNC(SYSTIMESTAMP) - INTERVAL '1' DAY as ts_bytes
FROM   DUAL;

如果您想要特定的HH:MM:SS时间,请在该时间加上一个间隔:

SELECT TRUNC(SYSTIMESTAMP) - INTERVAL '1' DAY + INTERVAL '12:34:56' HOUR TO SECOND as ts_bytes
FROM   DUAL;

答案 2 :(得分:0)

Select to_char(trunc(sysdate-1),’dd-mm-yyyy’)||’ 06:00:00’ as tyme from dual;

这很有趣,但应该可以。