考慮三個獨立的日期字段:之間有2個日期
COMPLETION_DATE:2017年4月27日 DUE_DATE:2016年7月22日 LATEST_DATE:2018年7月20日
使用DATEDIFF(MM,DUE_DATE ,LATEST_DATE),我可以計算結果爲24
然後我需要能夠搞清楚(月),其中竣工日期落在這個範圍之內。結果應該是21
考慮三個獨立的日期字段:之間有2個日期
COMPLETION_DATE:2017年4月27日 DUE_DATE:2016年7月22日 LATEST_DATE:2018年7月20日
使用DATEDIFF(MM,DUE_DATE ,LATEST_DATE),我可以計算結果爲24
然後我需要能夠搞清楚(月),其中竣工日期落在這個範圍之內。結果應該是21
我想你算錯了結果,或提供的日期時出現了拼寫錯誤。如果completion_date
爲2018-04-27
,而不是你在你的問題有2017-04-27
,那麼結果將是21
。
create table t (completion_date date, due_date date, latest_date date);
insert into t values ('20180427','20160722','20180720');
select
completion_date = convert(char(7),completion_date)
, due_date = convert(char(7),due_date)
, latest_date = convert(char(7),latest_date)
, months_for_completion = datediff(month,due_date,latest_date)
, months_until_completion = datediff(month,due_date,completion_date)
, months_remaining_at_completion = datediff(month,completion_date,latest_date)
from t
rextester演示:http://rextester.com/DEV75985
回報:
+-----------------+----------+-------------+-----------------------+-------------------------+--------------------------------+
| completion_date | due_date | latest_date | months_for_completion | months_until_completion | months_remaining_at_completion |
+-----------------+----------+-------------+-----------------------+-------------------------+--------------------------------+
| 2018-04 | 2016-07 | 2018-07 | 24 | 21 | 3 |
+-----------------+----------+-------------+-----------------------+-------------------------+--------------------------------+
完成編號的剩餘月份是正確的。給我提供價值的人給了我不正確的信息。去搞清楚。 –
@LisaRose樂意幫忙! – SqlZim
哎呀,其結果應該是21而不是19 –
那你試試?你得到了什麼錯誤? –
我還沒有嘗試比第一個公式的任何其他。我無法弄清楚如何進行第二部分。 –