如何以特定时间在 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 上进行查询以获取时间间隔,按特定字段分组
将日期附加到字符串以在 oracle 中获取表名并对其进行选择查询