Wählen Sie Zeilen in einem Datumsbereich in T-SQL
Habe ich eine Reihe von Zeilen, die jeweils mit einem Datum Wert, und ich brauche, um Zeilen auszuwählen, die fallen innerhalb eines bestimmten Zeitraums. Wie kann ich dies tun?
select * from table where convert(int,date_created) between //what should go here?
Wählen Sie zwischen '20-10-2010'
und '22-10-2010'
.
Es hält Klagen über die string zu Datum-Konvertierung.
date_created
ist ein DATETIME-Feld, also habe ich versucht zu löschen, mal bisschen durch Umwandlung zu int? jemand erzählte mir, das ist wie Ihre getan, sorry, habe ich verwechselt werden könnte!- mögliche Duplikate von datetime in die where-Klausel
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie yyyymmdd ist das sicherste format für SQL-Server
Nicht sicher, warum Sie KONVERTIERT zu int es...
Hinweis: wenn date_created hat eine zeitliche Komponente, dies schlägt fehl, da davon ausgegangen Mitternacht.
Edit:
Filter für die Tag 20 Okt 2010-22 Okt 2010 inclusive, wenn die
date_created
Spalte hat mal, ohne die Anwendung einer Funktion aufdate_created
:select cast(floor(cast(date_created as float)) as datetime)
zu entfernen, die mal Teil, wenn nötig.Entweder nicht konvertieren, die
date_created
zu einemint
oder verwenden Sie ganze zahlen für Ihre Daten-WerteIch würde den
date_created
als ein Datum.select * from table
where date_created between '20101020' and '20101022'