كيف يمكنني الحصول على عدد الأيام بين 2 التواريخ في أوراكل 11g?

StackOverflow https://stackoverflow.com/questions/1646001

  •  22-07-2019
  •  | 
  •  

سؤال

أنا أحاول العثور على عدد صحيح من الأيام بين تاريخين في أوراكل 11g.

يمكنني الحصول على وثيقة من خلال القيام

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

ولكن هذا يعود فاصل و لم تكن ناجحة صب هذا إلى عدد صحيح.

تحرير:على ما يبدو في 10g هذا إرجاع عدد الأيام عدد صحيح.

هل كانت مفيدة؟

المحلول 2

وأنا أحسب أنه من نفسي. أحتاج

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

نصائح أخرى

وأو كنت قد فعلت ذلك:

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)

ويمكنك محاولة استخدام:

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

وهذا سيعمل لقد اختبرت نفسي.
أنه يعطي الفرق بين 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
  • أيام كاملة بين نهاية الشهر و بداية من اليوم ، بما في ذلك آخر يوم من الشهر:

    SELECT LAST_DAY (TRUNC(SysDate)) - TRUNC(SysDate) + 1 FROM dual
    
  • أيام بين استخدام الوقت المحدد:

    SELECT SysDate - TO_DATE('2018-01-01','YYYY-MM-DD') FROM dual
    
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top