Doch die gibt es, Sie heißt
DATEPART(dw,GETDATE())
Das einzige Problem dabei ist, dass abhängig vom SQL Server bzw der Sprache der @@DATEFIRST anders sein kann.
zB in en ist @@DATEFIRST = 7 (Also Sonntag) in de ist es 1 (Also Montag)
Das heißt in EN ist DATEPART(dw,GETDATE()) heute zB 3. In DE wäre es 2.
Willst du einen unabhängigen Tag dann musst du ein bissl tricksen.
Eine Möglichkeit ist:
DATEDIFF(day, 0, GETDATE()) % 7 + 1
Man muss dazu nur wissen, das Tag "0" ein Montag ist. Die Tagesdifferenz vom ersten Montag zu heute ist also durch Mod 7 Montag - Dienstag = 1.
Je nachdem was man also Starttag haben möchte passt man das +1 an. Ich möchte Montag immer als 1 also +1 (Montag zu Montag wäre sonst 0). Sonntag und Samstag sind dann 7 und 6
LG
Das ist meine Signatur und sie wird wunderbar sein!
Da klingt mir das mit der neuen Tabelle irgendwie entspannter.
??? Da muss man genauso die Spracheinstellungen berücksichtigen.
Wie willst du das bitte universell anstellen. Zumal das Erstellen einer Tabelle für etwas, wo es eine SQL Funktion gibt mir nicht sehr entspannt sondern komplett unnötig vorkommt.
Das ist meine Signatur und sie wird wunderbar sein!
Solange du das nie international iwie verwendest (also zB auf einem englischen SQL Server) oder die Sprache am SQL Server änderst wird das auch funktionieren.
LG
Das ist meine Signatur und sie wird wunderbar sein!
Bitte sieh dir doch den Link aus Post 6 an.
Hier ist ein simple SQL Funktion welche du einkompilieren kannst und du bekommst immer die korrekten Werte...
Oder er verwendet einfach
DATEDIFF(day, 0, GETDATE()) % 7 + 1
Die Funktion aus dem Link ist ja auch nur eine weitere Möglichkeit zu der hier.
Ob man dafür gleich eine User Defined Function braucht kann der TE ja selber entscheiden.
Das ist meine Signatur und sie wird wunderbar sein!