私はStartDateフィールドとEndDateフィールドを持つテーブルを扱っています。私は何年もの間に違いを見つける必要があります。年の2つの日付の差を取得する
例: 開始日= 2017年1月1日 終了日= 2017年12月31日
私は日付の差を= 1に結果を期待しています。
また、最も近い整数に丸めたいと思います。
例: 開始日= 2017年1月1日 終了日= 2017年11月30日
私は日付の差を= 1に結果を期待しています。
datediff関数を使用すると、結果を得ることができますが、最も近い整数に丸められません。
例クエリ:私は65ヶ月/ 12が5.5未満になるにもかかわらず、6年間取得しています :
select (DATEDIFF(yy, '01/01/2016', '5/31/2021')
+ CASE WHEN abs(DATEPART(day, '01/01/2016') - DATEPART(day, '05/31/2021')) > 15 THEN 1 ELSE 0 END)
select (DATEDIFF(mm, '01/01/2016', '05/31/2021')
+ CASE WHEN abs(DATEPART(day, '01/01/2016') - DATEPART(day, '05/31/2021')) > 15 THEN 1 ELSE 0 END)
「ROUND」機能を試しましたか? – cwanjt
ラウンド関数を試しましたが、1ではなく上記のクエリで0が返され続けます.0.5が返される場合は0、0.5以上の場合は1が表示されます。私はどちらかを1のように見せることができます。 – NonProgrammer
私はちょうど私の間違いを認識しました。私は正しくラウンド関数を使用していませんでした:私はこれが動作すると思います:select round(1.3、0) – NonProgrammer