2016-08-05 13 views
1

SQLクエリに非常に奇妙なエラーがあり、その理由を理解できません。日付DATASCADENZASQL Server 2005 - DATE ADD AND GETDATEが機能しない

SELECT 
    CODCLIFOR, '', 
    DSCCONTO1, '', 
    NUMDOC, '', 
    NUMSCAD, '', 
    DATASCADENZA, '', 
    REPLACE(CONVERT(varchar, CAST(IMPORTOSCLIT AS money), 105),',','.') , '', 
    BANCAAPPCF.BANCAAPPOGGIO, '', 
    TIPIEFFETTI.DESCRIZIONE 
FROM 
    dbo.TABSCADENZE 
INNER JOIN 
    dbo.ANAGRAFICACF ON CODCLIFOR = CODCONTO 
INNER JOIN 
    dbo.TIPIEFFETTI ON TIPOEFFETTO = EFFETTO 
LEFT JOIN 
    dbo.BANCAAPPCF ON CODCLIFOR = BANCAAPPCF.CODCONTO AND BANCAAPPCF.CODICE = TABSCADENZE.BANCAAPPOGGIO 
WHERE  
    TIPOEFFETTO = 2 
    AND DATASCADENZA ='2016-08-05' 
    AND CODCLIFOR LIKE '%C%' 
ORDER BY 
    BANCAAPPCF.BANCAAPPOGGIO DESC 

WHERE条件で、私は「2016年8月5日」のような今日の日付を入れた場合、私はドン...私はGETDATE()またはDATEADD(DAY, 3, GETDATE())を使用する代わりに、場合、私は何の結果を得るません。..結果を得ます理由を理解できない。

私を助けることができますか?ありがとうございました!

+0

「GETDATE」が返すものを見たことがありますか? – HABO

答えて

7

GETDATE()は、日付の時間成分を返します。あなたが通り3日間追加することができます

DATASCADENZA = DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) 

:SQL Server 2005では、あなたが行うことによって、時間成分を除去することができますSQL Server 2008で起動する

DATASCADENZA = DATEADD(day, 3 + DATEDIFF(day, 0, GETDATE()), 0) 

、あなただけDATEデータ型に変換することができます:

DATASCADENZA = CAST(GETDATE() as DATE) 

私は多くの不思議な "0"の日付にこの日数を加えることを好む。

+0

ありがとう!今それは正常に動作します! – BigBlack

関連する問題