2016-08-05 50 views
1

Ich habe einen sehr seltsamen Fehler in einer SQL-Abfrage und ich verstehe nicht warum.SQL Server 2005 - DATUM ADD UND GETDATE ARBEITET NICHT

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 

Am Tag DATASCADENZA in dem Zustand, wenn ich das heute Datum setzen wie ‚2016.08.05‘ Ich Ergebnisse zu erhalten .. statt, wenn ich GETDATE() oder DATEADD(DAY, 3, GETDATE()) ich keine Ergebnisse ... Ich don verstehe nicht warum.

Können Sie mir helfen? Vielen Dank!

+0

Haben Sie jemals gesehen, was 'GETDATE' zurückgibt? – HABO

Antwort

7

GETDATE() gibt die Zeitkomponente des Datums zurück. In SQL Server 2005 können Sie die Zeitkomponente entfernen, indem Sie:

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

Sie 3 Tage hinzufügen können, wie:

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

in SQL Server 2008 starten, können Sie auf den DATE Datentyp umbauen :

Ich ziehe diese Formulierung vor, um Tage zu einigen mysteriösen "0" -Datum hinzuzufügen.

+0

Danke! Jetzt geht es gut! – BigBlack