Hallo Datenmaus,
ich gehe mal davon aus, dass du das SELECT auf einer Tabelle ausführst, die als Grundlage für eine Sharepoint-Liste dient, ansonsten wäre das mit dem SELECT ja nur mit einen Zusatz-Tool möglich, und dann wäre meine Antwort wahrscheinlich nicht nutzbar!
Um Daten einer ganzen Woche anzuzeigen, gibt es für den von Dir beschriebenen Fall gleich zwei Möglichkeiten
1. Abfrage mit viel Schreibaufwand, aber stabil bezüglich Änderung des Datensatzaufbaus
2. Abfrage mit hohem Konvertierungsgrad, was aber dann anfällig ist gegen abweichende Syntax der Inhalte
Die erste Möglichkeit wäre, die WHERE-Klausel zu erweitern und mit der DATEADD-Funktion eine komplette Woche vor dem aktuellen Datum zu ermitteln
Das sähe dann so aus:
SELECT *FROM[meinetabelle]
WHERElastchangeLIKE'%'+CONVERT(varchar(10),GETDATE(), 104)+'%'
ORlastchangeLIKE'%'+CONVERT(varchar(10),DATEADD(day,-1,GETDATE()), 104)+'%'
ORlastchangeLIKE'%'+CONVERT(varchar(10),DATEADD(day,-2,GETDATE()), 104)+'%'
ORlastchangeLIKE'%'+CONVERT(varchar(10),DATEADD(day,-3,GETDATE()), 104)+'%'
ORlastchangeLIKE'%'+CONVERT(varchar(10),DATEADD(day,-4,GETDATE()), 104)+'%'
ORlastchangeLIKE'%'+CONVERT(varchar(10),DATEADD(day,-5,GETDATE()), 104)+'%'
ORlastchangeLIKE'%'+CONVERT(varchar(10),DATEADD(day,-6,GETDATE()), 104)+'%'
Das ist zwar Performance-Technisch nicht sehr schön, aber in jedem Fall stabil bei einer String-Auswertung.
Die zweite Möglichkeit kann einen Abfragefehler verursachen, wenn die Konvertierung des Strings fehlschlägt.
Die zweite möglichkeit sähe dann so aus (auch mit Abfangen eines möglichen Konvertierungsfehlers)
SELECT * FROM [meinetabelle] WHERE
(CASE WHEN ISDATE(REVERSE(RTRIM(REPLACE(LEFT(REVERSE(lastchange), CHARINDEX('/',REVERSE(lastchange) )),'/',''))))=1 THEN
CAST(REVERSE(RTRIM(REPLACE(LEFT(REVERSE(lastchange), CHARINDEX('/',REVERSE(lastchange) )),'/',''))) as datetime) ELSE NULL END)
BETWEEN CAST(CONVERT(varchar(10),DATEADD(day, -6, GETDATE()), 104) as datetime) AND GETDATE()
Über einen Trigger eine Mail zu versenden ist theoretisch zwar möglich, aber in der Praxis eher wenig sinnvoll.
Wenn du das wirklich benötigst, kann ich zwar ein Beispiel posten, aber es gibt wesentlich bessere Möglichkeiten als dies über einen Trigger zu lösen.
Ich hoffe, dass meine Antwort dich weiter bringt.
Viele Grüße,
Tommi