Oracle 11gで2つの日付間の日数を取得するにはどうすればよいですか?
質問
Oracle 11gの2つの日付間の整数の日数を見つけようとしています。
次のようにすることで親しくなります
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
これは、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)
次を使用してみてください:
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
所属していません StackOverflow