43

Oracle 11g で 2 つの日付の間の整数の日数を見つけようとしています。

することで近づくことができます

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

しかし、これは間隔を返します。これを整数にキャストすることに成功していません。

編集: どうやら 10g では、これは日数を整数として返します。

4

6 に答える 6

50

または、次のようにすることもできます。

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

これは丸一日の NUMBER を返します:

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)
于 2009-10-29T19:34:51.983 に答える
23

私は自分でそれを理解しました。私は欲しい

select extract(day from sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) from dual
于 2009-10-29T19:32:34.663 に答える
6

次を使用して試すことができます:

select trunc(sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) as days from dual
于 2009-10-29T19:33:41.010 に答える
1

This will work i have tested myself.
It gives difference between sysdate and date fetched from column 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
于 2013-01-02T12:05:29.133 に答える