2010-09-06 4 views
19

Das sollte eine ziemlich einfache Frage sein, aber ich weiß sehr wenig über SQL. Ich habe eine Datenbank, die die folgenden Felder hat:Wie wähle ich Datensätze aus, die weniger als 1 Jahr alt sind?

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

Nun möchte ich alle Datensätze auswählen, die weniger als 1 Jahr alt sind, wenn die SQL-Anweisung ausgeführt wird. Ich weiß, ich sollte DateDiff verwenden, hat jemand irgendwelche Ideen?

Dank

Antwort

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

+1 für sargability. –

+1

+1 zu Ihrem Kommentar Martin, für Ihre Verwendung des Wortes Sargability –

3

TRY

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

(UNTESTED)

1
select ... from ... where YEAR(GETDATE()) - YEAR(YOURDATE) = 1 
Verwandte Themen