質問
私は、単純な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')
これは第二日かかります - 最初の日付を。 '' を忘れないでください。
所属していません StackOverflow