Sie sollten sich die in SQL Server verfügbaren Datumszeitformate ansehen:https:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi sollten Sie verwenden:
versuchen:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
In der obigen Abfrage werden die Zeichenfolgen in den Datetime-Datentyp konvertiert, wenn DateCreated ist eine datetime-Spalte. und die Abfrage funktioniert.
Sie können lokale Variablen vom Datentyp datetime erstellen und eine Abfrage verwenden wie:
DECLARE @StartDate datetime, @EndDate datetime
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
SELECT
*
FROM Records
WHERE DateCreated>example@sqldat.com AND DateCreated<example@sqldat.com
Ich verwende gerne <, <=,>=oder>, weil es mehr Flexibilität bietet als BETWEEN und zwingt Sie, darüber nachzudenken, ob Sie Endpunkte einbeziehen oder nicht.
Eine andere zu berücksichtigende Sache ist, alle Daten eines ganzen Tages zu erhalten:
DECLARE @StartDate datetime, @EndDate datetime
--set the days you want
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
--remove the time
SELECT @StartDate=DATEADD(day,DATEDIFF(day,0,@StartDate),0), @EndDate=DATEADD(day,DATEDIFF(day,0,@EndDate),0)
--get everything on '2007-02-30' up to the end of the day on '2008-06-21'
SELECT
*
FROM Records
WHERE DateCreated>example@sqldat.com AND DateCreated<@EndDate+1