Hoe kan ik een query uitvoeren op een DateTime database veld binnen een bepaald bereik?
Ik gebruik SQL SERVER 2005
Fout code hieronder
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Merk op dat ik rijen moet krijgen binnen een bepaald tijdsbereik. Voorbeeld, 10 minuten tijd bereik.
Momenteel SQL terugkeer met onjuiste syntaxis in de buurt '12'."
Je miste het enkele aanhalingsteken:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Het is ook aanbevolen om het ISO8601 formaat YYYY-MM-DDThh:mm:ss.nnn[ Z ] te gebruiken, omdat dit niet afhangt van uw server's locale cultuur.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Je hebt aanhalingstekens nodig rond de string die je probeert door te geven als een datum, en je kunt hier ook BETWEEN gebruiken:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Zie het antwoord op de volgende vraag voor voorbeelden van hoe u expliciet tekenreeksen naar datums kunt converteren terwijl u het formaat opgeeft:
https://stackoverflow.com/questions/207190/sql-server-string-to-date-conversion
SELECT *
FROM TABLENAME
WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
AND [DateTime] <= '2011-05-25 3:35:04 AM'
Als dit niet werkt, maak dan een script van je tabel en post het hier. Dit zal ons helpen om je snel het juiste antwoord te geven.