Hvordan spør jeg etter DateTime-databasefeltet innenfor et bestemt område?
Jeg bruker SQL SERVER 2005
Feilkode nedenfor
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Merk at jeg trenger å få rader innenfor et bestemt tidsintervall. Eksempel, tidsintervall på 10 minutter.
For øyeblikket SQL-retur med feil syntaks i nærheten av '12'."
Du gikk glipp av enkelt anførselstegn:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Det anbefales også å bruke ISO8601-formatet YYYY-MM-DDThh:mm:ss.nnn[ Z ], da dette ikke vil avhenge av serverens lokale kultur.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Du trenger anførselstegn rundt strengen du prøver å passere som en dato, og du kan også bruke BETWEEN her:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Se svaret på følgende spørsmål for eksempler på hvordan du eksplisitt konverterer strenger til datoer mens du spesifiserer formatet:
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'
Hvis dette ikke fungerer, kan du skrive ut tabellen din og legge den ut her. dette vil hjelpe oss med å gi deg riktig svar raskt.