O Oputres Medlem sedan feb. 2004 333 inlägg Frågan 30 maj 2006 09:24 #1 Gruff, min SQL-bok har försvunnit...
Hur som helst så skulle jag behöva hämta alla poster i min Accessdatabas där årtalet är t.ex. 2006. Men, datumen ligger i formatet 2006-01-01. Är det här lämpligast att använda Like enligt nedan:
Select * From tbl Where datum Like '2006' ORDER BY datum Desc
Eller finns det något smartare alternativ?
cyprys Medlem sedan dec. 2000 3 563 inlägg ... where year(datum) = 2006 ...
@nders Medlem sedan juni 2000 32 967 inlägg Det är dåligt att använda LIKE, du vet egentligen inte hur datumet lagras i själva databasen, bara hur det presenteras.
Använd Year.
Select * From tbl Where year(datum) = 2006 ORDER BY datum Desc
Datumfunktioner till datumfält, är grundregeln helt enkelt. :)
mvh
O Oputres Medlem sedan feb. 2004 333 inlägg Aaah, såklart. Det går ju att använda även här. Tänkte inte på det... :)
L LarsG Medlem sedan dec. 2000 12 464 inlägg Ur optimeringssynpunkt är det oftast bättre att ange ett slutet interval.
Select *
From t
Where datum between #2006-01-01# and #2006-12-31#
ORDER BY datum Desc
De flesta DBMS verkar inte använda index om man använder en funktion på detta sätt.
Nu vet jag inte om detta gäller för Access.