0

結果に基づいて計算を行うには、2 つの日付の違いを見つける必要があります。

列のstart_date値が 1/Jan/2014 で、列のend_date値が 15/Mar/2014 であるとします。私が望む結果は次の形式です:

months | days_remain |
----------------------
   2          15

関数を使用して、個別に(2か月と74日として)MONTH違いと違いを見つけることができます。しかし、残りの 15 日をどうやって調べるのでしょうか?DAYTIMESTAMPDIFF

4

5 に答える 5

0

これを試して。サンプル データも参照してください。

select 
  dt1, dt2,
  trunc( months_between(dt2,dt1) ) mths, 
  dt2 - add_months( dt1, trunc(months_between(dt2,dt1)) ) days
from
(
    select date '2012-01-01' dt1, date '2012-03-25' dt2 from dual union all
    select date '2012-01-01' dt1, date '2013-01-01' dt2 from dual union all
    select date '2012-01-01' dt1, date '2012-01-01' dt2 from dual union all
    select date '2012-02-28' dt1, date '2012-03-01' dt2 from dual union all
    select date '2013-02-28' dt1, date '2013-03-01' dt2 from dual union all
    select date '2013-02-28' dt1, date '2013-04-01' dt2 from dual 
) sample_data;

それが役に立てば幸い。

于 2014-11-10T11:31:01.693 に答える
0

これを試してみてください。うまくいくことを願っています。

select DateDiff(d, datepart(month,[Start_Date]),datepart(month,End_Date)) as  Months,

(30-day(end_date)) as Days_remain

from Sdate 
于 2014-11-10T10:41:28.263 に答える