2010-09-06 9 views
19

Cela devrait être une question assez simple, mais je connais très peu de choses sur SQL. J'ai une base de données qui a les champs suivants:Comment sélectionner les enregistrements de moins de 1 an?

  • client_id
  • scheduled_amount
  • deposit_amount
  • message_code_id
  • note_text
  • system_date

Maintenant, je souhaite sélectionner tous les enregistrements qui ont moins de 1 an à partir de l'exécution de l'instruction SQL. Je sais que je devrais utiliser DateDiff, quelqu'un a des idées?

Merci

Répondre

47
select * 
from MyTable 
where MyDate > DATEADD(year, -1, GetDate()) 
+4

+1 pour sargability. –

+1

+1 à votre commentaire Martin, pour votre utilisation du mot Sargability –

3

ESSAYEZ

SELECT * FROM TABLE_NAME WHERE SYSTEM_DATE > DATEADD(YYYY, -1, GETDATE()) 

(non testé)

1
select ... from ... where YEAR(GETDATE()) - YEAR(YOURDATE) = 1 
Questions connexes