質問

私は、単純な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ます。

役に立ちましたか?

解決

あなたは引用符が欠落している。

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

あなたは20取得しているため、

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

2008 - 1988 = 20

他のヒント

あなたがそれを実行すると、このようます:

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

あなたが表示されます。

1988  2008

結果またはあなたがここに置くことを整数演算である。

単一引用符に日付定数を囲みます:

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

--
-50

あなたはアポストロフィであなたの日付を囲む場合、それは動作します -

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

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

これは第二日かかります - 最初の日付を。 '' を忘れないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top