Ako sa môžem opýtať na pole DateTime v databáze v určitom rozsahu?
Používam SQL SERVER 2005
Nižšie uvedený chybový kód
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Všimnite si, že potrebujem získať riadky v určitom časovom rozsahu. Príklad, časový rozsah 10 minút.
V súčasnosti SQL vracia s nesprávnou syntaxou v blízkosti '12'."
Vynechali ste znak jednoduchých úvodzoviek:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Tiež sa odporúča používať formát ISO8601 RRRR-MM-DDThh:mm:ss.nnn[ Z ], pretože tento nebude závisieť od lokálnej kultúry vášho servera.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Okolo reťazca, ktorý sa snažíte vydávať za dátum, potrebujete úvodzovky a môžete tu tiež použiť BETWEEN:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Príklady, ako explicitne konvertovať reťazce na dátumy a zároveň určiť formát, nájdete v odpovedi na nasledujúcu otázku:
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'
Ak to nefunguje, napíšte prosím skript vašej tabuľky a zverejnite ho tu. pomôže nám to rýchlo získať správnu odpoveď.