2013-04-16 8 views
16

Ich versuche, morgen Datum in einer SQL-Anweisung für einen Datum Vergleich zu bekommen, aber es funktioniert nicht.Get tomorrows date

Unten ist mein Code:

select * 
from tblcalendarentries 
where convert(varchar,tblcalendarentries.[Start Time],101) 
     = convert(varchar, GETDATE() +1, 101) 
+0

Was ist die Fehlermeldung? –

Antwort

28

tomorrows Um heute können Sie den folgenden Code verwenden, 1 Tag bis zu dem aktuellen Systemdatum hinzufügen wird:

SELECT DATEADD(day, 1, GETDATE()) 

GETDATE()

Gibt den aktuellen Zeitstempel des Datenbanksystems als Datetime-Wert ohne den Offset der Datenbankzeitzone zurück. Dieser Wert wird vom Betriebssystem des Computers abgeleitet, auf dem die Instanz von SQL Server ausgeführt wird.

DATEADD(datepart , number , date)

Gibt ein angegebenes Datum mit der angegebenen Nummer Intervall (Ganzzahl mit Vorzeichen) zu einem festgelegten Datumsteil von diesem Datum.

Hinzufügen dieser Also, um Ihren Code in der WHERE Klausel:

WHERE CONVERT(VARCHAR, tblcalendarentries.[Start Time], 101) = 
     CONVERT(VARCHAR, DATEADD(DAY, 1, GETDATE()), 101); 

First off, GETDATE() werden Sie das heutige Datum in folgendem Format erhalten:

2013-04-16 10:10:02.047 

Dann DATEADD() Verwendung erlaubt Sie können ein Datum oder ein Zeitintervall von einem bestimmten Datum hinzufügen (oder subtrahieren, falls erforderlich). So könnte das Intervall: Jahr, Monat, Tag, Stunde, Minute usw. sein.

Arbeiten mit Zeitzonen?

Wenn Sie mit Systemen arbeiten, die Zeitzonen überqueren, können Sie die folgenden GETUTCDATE() mit berücksichtigen:

GETUTCDATE()

Gibt den Zeitstempel als Datumswert aktuelle Datenbanksystem. Der Datenbank-Zeitzonen-Offset ist nicht enthalten. Dieser Wert repräsentiert die aktuelle UTC-Zeit (Coordinated Universal Time). Dieser Wert wird vom Betriebssystem des Computers abgeleitet, auf dem die Instanz von SQL Server ausgeführt wird.

-2

Ich denke, wenn Sie eine zu dem Datum hinzufügen, gibt es das Datum des nächsten Tages.

DATE+1 

Das sollte in Ordnung sein.Leider habe ich keinen Zugriff auf SQL-Code SERVER hier Code zur Verfügung zu stellen

2

Geben Größe varchar in convert()

where convert(varchar(11),tblcalendarentries.[Start Time],101) = convert(varchar(11), GETDATE() +1, 101) 
4

Versuchen Sie die folgenden:

SELECT GETDATE() + 1 

Dieser eintägige fügt aktuelle Datum

0

Ich würde schreiben:

where 
    DATEADD(day,DATEDIFF(day,0,tblcalendarentries.[Start Time]),0) = 
    DATEADD(day,DATEDIFF(day,0,GETDATE()),1) 

Dadurch wird vermieden, Datumsangaben vollständig in Zeichenfolgen zu konvertieren und gleichzeitig den Zeitabschnitt von beiden Werten zu entfernen.