>=DateAdd("ww",-9,Date()-Weekday(Date(),0)+1))
Ich habe die obige Funktion in einigen SQL-Codierung, die ich geerbt haben, und ich kämpfen, um herauszufinden, was es eigentlich ist die Berechnung kann jemand helfen?SQL Datum - Funktionen
>=DateAdd("ww",-9,Date()-Weekday(Date(),0)+1))
Ich habe die obige Funktion in einigen SQL-Codierung, die ich geerbt haben, und ich kämpfen, um herauszufinden, was es eigentlich ist die Berechnung kann jemand helfen?SQL Datum - Funktionen
Betrachten Sie diese SQL mit der Anweisung in Teile dekonstruiert.
Es wurde in SQL-Server 12 getestet und verwendet die Funktion GETDATE() anstelle der Funktion Date().
select
GETDATE() as today,
@@DATEFIRST as first_day_of_the_week_number,
DATEPART(WEEKDAY,GETDATE()) as current_day_number_of_the_week,
GETDATE()-DATEPART(WEEKDAY,GETDATE()) as previous_saturday,
GETDATE()-DATEPART(WEEKDAY,GETDATE())+1 as previous_sunday,
DATEADD("ww",-9,GETDATE()-DATEPART(WEEKDAY,GETDATE())+1) as previous_sunday_9_weeks_back;
So würde es den Sonntag von 9 Wochen zurück geben.
Beachten Sie, dass es davon ausgeht, dass @@DATEFIRST
gleich 7.
Wenn @@DATEFIRST
gleich 1 ist, dann würde es den Montag von 9 Wochen wieder zurück.
Das hängt tatsächlich vollständig von dem Wert von ['@@ DATEFIRST'] ab (https://msdn.microsoft.com/library/ms187766). (Aber die 'WeekDay'-Funktion ist ebenfalls mehrdeutig mit einem zweiten Argument von' 0 '.) –
@Jeroen War dieser t-sql-quirck nicht bekannt. Danke für die Einsicht. – LukStorms
SQL Server 2008 –
Es sieht eher wie eine MS Excel- oder Access-Funktion aus. – gofr1
Ich dachte, das wäre DAX, aber es ist nicht, da DAX keine 'DATEADD'-Funktion hat. Aber T-SQL hat keine 'WEEKDAY'-Funktion, das ist wahrscheinlich einfach nur VBA. Fügen Sie den Kontext hinzu, in dem Sie diesen Code gefunden haben. –