MS Access SQL pour Sélectionner la plage de date
J'ai besoin de sélectionner un enregistrement avec des dates qui possède des dates ( dans la gamme: formulaire de 1998 à 1999). J'ai écrit la déclaration dont il n'a l'air de fonctionner . Pourquoi?
SELECT *
FROM Factory
WHERE
(EXTRACT(YEAR FROM date) AS dyear) BETWEEN '1998' AND '1999'
- Pourquoi ne pas
WHERE date BETWEEN '1998-01-01' AND '1999-12-31'
? - pourquoi cela ne fonctionnerait pas?
- MS Access a montré une erreur qui n'a pas de documentation pour elle.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
YEAR()
pour obtenir l'année de la date.L'application de la
Year()
fonction pour chaque ligne dansFactory
sera sensiblement les performances défi si le tableau contient des milliers de lignes. (En fait, il serait un défi de performances pour une table plus petite, trop, mais vous seraient moins susceptibles de remarquer le coup dans ce cas.) Une approche plus efficace serait de l'indice de la[date]
et l'utilisation de récupération indexée à limiter le moteur de base de la charge de travail.Chaque fois que possible, la conception de vos requêtes pour profiter de récupération indexée. Qui peut nettement améliorer les performances. Comme une simple règle de base: récupération indexée = bon; full table scan = mauvais. Essayez d'éviter toutes les tables analyses chaque fois que possible.