如何以特定时间在 Oracle 中获取昨天的日期时间?

Posted

技术标签:

【中文标题】如何以特定时间在 Oracle 中获取昨天的日期时间?【英文标题】:How to take yesterdays datetime in Oracle with specific time? 【发布时间】:2018-11-19 11:17:24 【问题描述】:

我需要取昨天的值,例如:

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

时间是固定的。

【问题讨论】:

试试Systimestamp - INTERVAL '1' DAY How to subtract hours from a date in Oracle so it affects the day also的可能重复 【参考方案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;

【讨论】:

【参考方案2】:

如果您想在昨天的午夜 (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;

【讨论】:

【参考方案3】:
Select to_char(trunc(sysdate-1),’dd-mm-yyyy’)||’ 06:00:00’ as tyme from dual;

这很有趣,但应该可以。

【讨论】:

【参考方案4】:
SELECT  SYSTIMESTAMP - INTERVAL '1' DAY   AS yesterday
FROM    dual;

试试这个。

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何以特定时间在 Oracle 中获取昨天的日期时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Oracle SQL 上进行查询以获取时间间隔,按特定字段分组

如何以特定格式获取 Javascript 当前日期秒数

将日期附加到字符串以在 oracle 中获取表名并对其进行选择查询

当用户从日期选择器中选择日期时,如何在下拉列表中获取特定的星期几?

ORACLE SQL - 如何检查时间是不是在特定范围内?

无法在 Swift 中将日期转换为特定格式