Wie frage ich das DateTime-Datenbankfeld innerhalb eines bestimmten Bereichs ab?
Ich verwende SQL Server 2005
Fehlercode unten
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Beachten Sie, dass ich Zeilen innerhalb eines bestimmten Zeitbereichs abrufen muss. Beispiel: 10 Minuten Zeitbereich.
Derzeit gibt SQL mit falscher Syntax in der Nähe von '12' zurück. "
where date = 1/12/2011
zum Beispiel tun , scheint es zu funktionieren, aber teilen Sie tatsächlich den 12.01.2011 und erhalten Sie Null und behandeln Sie dann Null als den minimal möglichen Datum / Uhrzeit-Wert.Antworten:
Sie haben ein einfaches Anführungszeichen verpasst:
Es wird außerdem empfohlen, das ISO8601-Format JJJJ-MM-TTThh: mm: ss.nnn [Z] zu verwenden, da dieses nicht von der lokalen Kultur Ihres Servers abhängt.
quelle
Sie benötigen Anführungszeichen um die Zeichenfolge, die Sie als Datum ausgeben möchten, und Sie können auch ZWISCHEN hier verwenden:
In der Antwort auf die folgende Frage finden Sie Beispiele zum expliziten Konvertieren von Zeichenfolgen in Datumsangaben unter Angabe des Formats:
Konvertierung von SQL Server-Zeichenfolgen in Datumsangaben
quelle
Dies hat bei mir sowohl in SQL Server 2005 als auch in 2008 funktioniert:
quelle
Sie können den folgenden Code ausführen
quelle
Wenn dies nicht funktioniert, schreiben Sie bitte Ihre Tabelle aus und veröffentlichen Sie sie hier. Dies hilft uns, Ihnen schnell die richtige Antwort zu geben.
quelle
quelle
Andere haben bereits gesagt, dass Datumsliterale in SQL Server in einfache Anführungszeichen gesetzt werden müssen, aber ich wollte hinzufügen, dass Sie Ihr Monat / Tag-Verwechslungsproblem auf zwei Arten lösen können (dh das Problem, bei dem 25 als Monat und 5 als Monat angesehen wird Tag) :
Verwenden Sie einen expliziten,
Convert(datetime, 'datevalue', style)
bei dem der Stil einer der numerischen Stilcodes ist (siehe Umwandeln und Konvertieren) . Der Stilparameter dient nicht nur zum Konvertieren von Datumsangaben in Zeichenfolgen, sondern auch zum Bestimmen, wie Zeichenfolgen in Datumsangaben analysiert werden.Verwenden Sie ein regionunabhängiges Format für Daten, die als Zeichenfolgen gespeichert sind. Die von mir verwendete ist 'yyyymmdd hh: mm: ss' oder das ISO-Format
yyyy-mm-ddThh:mi:ss.mmm
. Basierend auf Experimenten gibt es KEINE andere sprachinvariante Formatzeichenfolge. (Obwohl ich denke, dass Sie die Zeitzone am Ende einfügen können, siehe den obigen Link).quelle
Öffnen Sie die Access-Datei, in die Sie SQL-Daten exportieren möchten. Löschen Sie alle vorhandenen Abfragen. Jedes Mal, wenn Sie den SQL Server-Importassistenten ausführen, wird in der Access-Datenbank eine Abfrage erstellt, die gelöscht werden muss, bevor Sie den SQL-Exportassistenten erneut ausführen können.
quelle