Bonjour,
En fait tu avais du avoir des soucis au niveau des heures getdate() te donne heure, minute,seconde.
SELECT * FROM matable WHERE datedebut < getdate()
te renvoie aussi les lignes où datedebut est aujourd'hui à 10h du matin si tu fais ta requête l'après midi.
Dans ce cas le plus simple c'est de tronquer getdate() à la date à minuit, mais uniquement getdate() comme cela tu gardes l'avantage des index sur datedebut.
Tu peux donc éventuellement écrire
SELECT * FROM matable WHERE datedebut < CAST(FLOOR(CAST(getdate()))
ou plus généralement
1 2 3
| declare @ma_date_pivot datetime
set @ma_date_pivot= CAST(FLOOR(CAST(@datetime_limite))
SELECT * FROM matable WHERE datedebut < @ma_date_pivot |
l'idée principale est de calculer les bornes qui sont fixe une fois pour toutes.
A+
Soazig
Partager