Salut à tous,
Je travail sur delphi avec sql server 2005, et il faut que je puisse selectionner que les dates de l'année en cours et non celles des autres années.
Merci d'avance pour votre aide.
and
Salut à tous,
Je travail sur delphi avec sql server 2005, et il faut que je puisse selectionner que les dates de l'année en cours et non celles des autres années.
Merci d'avance pour votre aide.
and
Salut
Il existe des petites variations syntaxiques suivant les SGBD, connaissant très peu SQL Server, je te suggère tout de même ceci:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT F1, F2, F_DATE FROM T1 WHERE YEAR(F_DATE) = 2008
@+ Claudius
d'accord pour l'année 2008 mais si on est en 2009 il faut que ça prenne les dates de l'année 2009 et ainsi de suite...sysdate ça pourrait marcher?
?
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 WHERE YEAR(F_DATE) = YEAR(CURRENT_DATE)
Si tu veux avoir des perfs correctes pour tes requêtes, il faut absoluement éviter de faire des recherches sur le résultat d'un calcul.
Donc il vaut mieux chercher les dates comprises entre le début de l'année en cours et le début de l'année suivante :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select * from MaTable where MaDate >= cast(cast(year(getdate()) as varchar(4)) + '0101' as datetime) and -- Date postérieur à l'année en cours MaDate < cast(cast(year(getdate())+1 as varchar(4)) + '0101' as datetime) -- et strictement antérieure à l'année suivante.
De cette façon SQL Server pourra utiliser les indexes sur le champ MaDate.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager