Как вычесть 30 дней из sysdate и исключить часы - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь вычесть 30 дней из sysdate

Я использую запрос (sysdate - 30).Тем не менее, это включает текущие системные часы и минуты.

Я хочу, чтобы он включал все данные, где sysdate -30, без указания часов и минут.

1 Ответ

1 голос
/ 26 сентября 2019

Например:

SQL> alter session set nls_Date_format = 'dd.mm.yyyy hh24:Mi:ss';

Session altered.

SQL> select sysdate,
  2         sysdate - 30 thirty_days_ago,
  3         trunc(sysdate - 30) truncated
  4  from dual;

SYSDATE             THIRTY_DAYS_AGO     TRUNCATED
------------------- ------------------- -------------------
26.09.2019 11:10:18 27.08.2019 11:10:18 27.08.2019 00:00:00

SQL>

Если вы хотите отобразить без компонента времени, либо снова alter session (но с использованием другого формата данных, например, dd.mm.yyyy), либоприменить TO_CHAR функцию:

SQL> select to_char(trunc(sysdate - 30), 'dd.mm.yyyy') without_time
  2  from dual;

WITHOUT_TI
----------
27.08.2019

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...