2

2つの日付の間に何日あるかを見つけようとしています。私はこれを使おうとしています:

SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))

ただし、これは日数を返していません。それは私のデータセットとは何の関係もない年単位の日時を返しています。

問題がどこにあるのかはわかりませんが、SQLはまだかなり新しいものです。また、Days_Outstandingをintとして定義していますが、それが問題になる可能性がありますか?ありがとう!

編集

みんな、ありがとう!何が起こったのかわからないので、私はいくつかのことをあなたが提案したものに変更しました、そして私が元の状態に戻ったときにそれはうまくいきました。何が起こったのかわからない。考えてくれてありがとう!

4

3 に答える 3

4

DATEDIFF整数を返します

ただし、との値/データ型によっては、日数が明らかに間違っている可能性がありますLS_CHG_DTE_EQP/Report_Datelocale

また、DATEDIFF24時間ではなく日の境界で動作します。だから23:56to00:02は1日です。

それ以外の場合は、サンプルの入力と出力を追加してください。

于 2010-08-16T19:03:14.547 に答える
3

select DATEDIFF(dd,'20100101',getdate())

今日は227を返します

したがって、あなたの場合、LS_CHG_DTE_EQPとReport_Dateが両方とも日時列であると仮定します

SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)
于 2010-08-16T19:04:24.657 に答える
0

試してみましたか

SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))
于 2010-08-16T19:03:10.977 に答える