Datetime ZWISCHEN Anweisung nicht in SQL Server
Ich habe die folgende Abfrage,
SELECT * FROM LOGS
WHERE CHECK_IN BETWEEN CONVERT(datetime,'2013-10-17') AND CONVERT(datetime,'2013-10-18')
diese Abfrage nicht wieder ohne Ergebnis, aber die folgende Abfrage das Ergebnis,
SELECT * FROM LOGS WHERE CHECK_IN >= CONVERT(datetime,'2013-10-17')
warum die erste Abfrage nicht wieder ohne Ergebnis? Wenn ich keinen Fehler pls korrigieren Sie mich.
- Kannst du die Ergebnisse von select top 5 CHECK_IN von LOGS, wo CHECK_IN >= convert(datetime, '2013-10-17') ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hast du mal im Zusammenhang mit Ihren Daten? ZWISCHEN ist inclusive, aber beim konvertieren 2013-10-18 zu einem Datum wird es 2013-10-18 00:00:000.00. Alles, was angemeldet ist, nach der ersten Sekunde der 18 nicht mit ZWISCHEN, es sei denn, Sie enthalten einen Zeit-Wert.
Versuchen:
wenn Sie möchten, suchen Sie den gesamten Tag des 18.
SQL-DATETIME-Feldern, Millisekunden. Also ich habe 999 auf dem Feld.
Funktioniert die zweite Abfrage keine Ergebnisse aus dem 17., oder einfach nur aus dem 18ten?
Die erste Abfrage liefert dann nur Ergebnisse aus dem 17., oder bis Mitternacht am 18.
Versuchen, diese stattdessen
Haben Sie keine Fehler in Ihren Abfragen.
Meine Vermutung ist folgende:
Müssen Sie zum konvertieren von Datum-Feld varchar, Streifen aus der Zeit, konvertieren Sie es dann zurück in datetime, dies wird zurückgesetzt, die Zeit "00:00:00.000'.
Vom Sql Server 2008 haben Sie die "Datum" - format.
So können Sie
https://docs.microsoft.com/en-us/sql/t-sql/data-types/date-transact-sql