Как взять вчерашнее время в Oracle с определенным временем? - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно принять значение вчерашнего дня, например:

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

, где зафиксировано время.

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Если вы хотите затем время в полночь вчерашнего дня (00:00:00), то усечьте текущую временную метку до начала сегодняшнего дня и затем вычтите один день:

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

Если вы хотите указать определенное время в формате ЧЧ: ММ: СС, добавьте интервал с этим временем:

SELECT TRUNC(SYSTIMESTAMP) - INTERVAL '1' DAY + INTERVAL '12:34:56' HOUR TO SECOND as ts_bytes
FROM   DUAL;
0 голосов
/ 19 ноября 2018
Select to_char(trunc(sysdate-1),’dd-mm-yyyy’)||’ 06:00:00’ as tyme from dual;

Это смешно, но должно сработать.

0 голосов
/ 19 ноября 2018

Я думаю, что вы ищете это:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...