Come posso interrogare un campo di database DateTime entro un certo intervallo?
Sto usando SQL SERVER 2005
Codice di errore qui sotto
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Nota che ho bisogno di ottenere righe entro un certo intervallo di tempo. Esempio: intervallo di tempo di 10 minuti.
Attualmente SQL ritorna con sintassi errata vicino a '12'."
Hai mancato il segno di citazione singola:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Inoltre, si raccomanda di utilizzare il formato ISO8601 YYYY-MM-DDThh:mm:ss.nnn[ Z ], poiché questo non dipenderà dalla cultura locale del vostro server.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Avete bisogno di virgolette intorno alla stringa che state cercando di far passare per una data, e potete anche usare BETWEEN qui:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Vedi la risposta alla domanda seguente per esempi su come convertire esplicitamente le stringhe in date specificando il formato:
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'
Se questo non funziona, per favore scrivi la tua tabella e postala qui. questo ci aiuterà a darti la risposta corretta velocemente.