6

単純な DATEDIFF クエリを実行していますが、日数が正しく計算されていないか、何か間違っています。

私が走れば

PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01)
RETURN 19

どちらが正しい。最初の日付の月を 2 月 (02) に変更すると、何かおかしくなりました。

PRINT DATEDIFF(Day, 2010-02-20, 2010-01-01)
RETURN 20

48か何かでいいんじゃないの?

誰でも私が間違っていることを見ることができますか、またはこれらの日付間の日数が必要な場合に使用するのは正しい関数ではありませんか?

私は他の日付から1つの日付を取得しようとしました:

PRINT (2010-02-20) - (2010-01-01)
RETURN -20

どんな助けでも大歓迎です。

ありがとう、J.

4

4 に答える 4

4

引用符がありません

PRINT DATEDIFF(Day, '2010-01-01', '2010-02-20')

あなたは20を取得しています

2010 - 1 - 1 = 2008
2010 - 2 - 20 = 1988

2008 - 1988 = 20
于 2010-03-25T16:59:59.010 に答える
1
PRINT DATEDIFF(Day, '2010-01-10', '2010-02-20') 

それは2番目の日付-最初の日付を取ります。忘れないで ' '。

于 2010-03-25T17:01:11.487 に答える
1

日付をアポストロフィで囲むと機能します-

SELECT DATEDIFF(day, '2010-02-20', '2010-01-10')

-41
于 2010-03-25T17:01:26.043 に答える
1

このように実行すると:

SELECT  2010-02-20, 2010-01-01

あなたが見るでしょう

1988  2008

これは、ここに入力した結果または整数演算です。

日付定数を一重引用符で囲みます。

SELECT  DATEDIFF(Day, '2010-02-20', '2010-01-01')

--
-50
于 2010-03-25T17:00:57.057 に答える