获取特定时间和日期的系统时间 - Oracle SQL

Get systime at a specific time and date - Oracle SQL

是否可以这样做?

SELECT
    TO_CHAR(SYSDATE-1, 'MM-DD-YYYY 08:00:00') "Yesterday",

我想获取昨天早上 8 点的系统日期

你可以这样写:

trunc(sysdate - 1) + interval '8' hour

或者:

trunc(sysdate) - interval '16' hour

或者您可以使用整数值而不是间隔进行日期算术运算:

trunc(sysdate) - 16/24    
  • 截断系统日期。这将删除日期的时间部分。
  • 然后加上 8/24(24 的 8 小时),8/24 等于 1/3 - 8 小时是一天的三分之一。
  • 然后以 DD-MON-YYYY HH24:MI:SS.
  • 格式显示此日期值

这一切加起来:

SELECT TO_CHAR(TRUNC(SYSDATE) - 1 + 1/3,'DD-MON-YYYY HH24:MI:SS') FROM DUAL;