Как узнать количество дней между двумя датами в Oracle 11g? - PullRequest
29 голосов
/ 29 октября 2009

Я пытаюсь найти целое число дней между двумя датами в Oracle 11g.

Я могу приблизиться, сделав

select sysdate - to_date('2009-10-01', 'yyyy-mm-dd') from dual

но это возвращает интервал, и мне не удалось привести его к целому числу.

Edit: очевидно, в 10g, это возвращает количество дней в виде целого числа.

Ответы [ 5 ]

39 голосов
/ 29 октября 2009

Или вы могли бы сделать это:

select trunc(sysdate) - to_date('2009-10-01', 'yyyy-mm-dd') from dual

Возвращает число целых дней:

SQL> create view v as 
  2  select trunc(sysdate) - to_date('2009-10-01', 'yyyy-mm-dd') diff 
  3  from dual;

View created.

SQL> select * from v;

      DIFF
----------
        29

SQL> desc v
 Name                   Null?    Type
 ---------------------- -------- ------------------------
 DIFF                            NUMBER(38)
15 голосов
/ 29 октября 2009

Я понял это сам. Мне нужно

select extract(day from sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) from dual
4 голосов
/ 29 октября 2009

Вы можете попробовать использовать:

select trunc(sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) as days from dual
1 голос
/ 02 января 2013

Это будет работать, я проверил себя.
Это дает разницу между sysdate и датой, извлеченной из столбца admitdate

  TABLE SCHEMA:
    CREATE TABLE "ADMIN"."DUESTESTING" 
    (   
  "TOTAL" NUMBER(*,0), 
"DUES" NUMBER(*,0), 
"ADMITDATE" TIMESTAMP (6), 
"DISCHARGEDATE" TIMESTAMP (6)
    )

EXAMPLE:
select TO_NUMBER(trunc(sysdate) - to_date(to_char(admitdate, 'yyyy-mm-dd'),'yyyy-mm-dd')) from admin.duestesting where total=300
0 голосов
/ 27 июня 2018
  • Полные дни между концом месяца и началом дня, включая последний день месяца:

    SELECT LAST_DAY (TRUNC(SysDate)) - TRUNC(SysDate) + 1 FROM dual
    
  • Дни между использованием точного времени:

    SELECT SysDate - TO_DATE('2018-01-01','YYYY-MM-DD') FROM dual
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...