簡體   English   中英

如何在oracle sql中提取兩個日期之間的天數?

[英]How to extract No. of Days between 2 dates in oracle sql?

我想使用Oracle SQL在這兩個日期之間的天數

日期:

BETWEEN "1/1/2018" AND "6/11/2018"

如何編寫SQL查詢?

between date '2018-01-01' and date '2018-11-06'

DATE文字看起來完全像這樣: DATE 'YYYY-MM-DD'

在您的示例中:

  • 不能使用雙引號
  • 即使您使用單引號,也可能是字符串,而不是DATE,因此您將取決於Oracle是否能夠(隱式)將其轉換為日期
  • 因此,請始終使用日期,而不是字符串

[編輯]

這是您在這兩個日期之間選擇整個日歷的方式

select date '2018-01-01' + level - 1
from dual
connect by level <= date '2018-11-06' - date '2018-01-01' + 1;

正如其他答案所指出的那樣,您可以簡單地將兩個日期相除,但是也不需要任何其他算術。

編碼:

select to_date('6/11/2018', 'DD/MM/YYYY') - to_date('1/1/2018', 'DD/MM/YYYY')
  from dual;

結果:309

只需使用

select date'2018-11-06' - date'2018-01-01' + 1 as days_difference
  from dual;

DAYS_DIFFERENCE
---------------
     310

要么

with t( myDate ) as
(
 select date'2018-11-06' from dual union all 
 select date'2018-01-01' from dual
)
select max(myDate) - min(myDate) + 1 as days_difference
  from t;

DAYS_DIFFERENCE
---------------
     310

您可以簡單地執行以下操作:

select date1-date2 form dual;

要么

select (sysdate-to_date('01-jan-2018'))-(sysdate-to_date('10-jan-2018'))from dual;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM