Dzień tygodnia

0

Cześć,

W jaki sposób można znaleźć wybrany dzień tygodnia w danym tygodniu ?
Przykładowo: Dzisiaj jest getdate() - chcę znaleźć wtorek w bieżącym tygodniu (chodzi mi o znalezienie smalldatetime).

Z góry dzięki za wskazówki.

0

select datename(dw,getdate())

Po uprzednim ustawieniu języka oczywiście.

0

Być może niedokładnie napisałem, ale chodziło mi o coś w stylu:

getdate() << (dzisiaj jest środa 08.05.2013) w wyniku chcę otrzymać 07.05.2013
jeśli getdate uruchomię np w sobotę 09.05.2013 to w wyniku też chcę otrzymać 07.05.2013

0

Nie rozumiem do końca, to może zamiast getdate() daj wartość daty, tej której chcesz wyświetlić.

0

Właśnie tą datę chcę znaleźć, tzn. zamiast getdate() wpisuję np '2013-03-02' i w wyniku chcę otrzymać datę odpowiadającą wtorkowi z tygodnia w którym wystąpił 2 marca 2013 (Zał., że poniedziałek jest pierwszym dniem tygodnia)

0
  • oblicz dzień tygodnia dla daty którą podałeś - datepart(weekday, data)
  • oblicz pierwszy dzień tygodnia odejmując od daty nr dnia tygodnia z poprzedniego kroku - DATEADD
  • dodaj do wyniku nr dnia tygodnia który chcesz otrzymać - DATEADD

Oczywiście biorąc poprawkę na to że pierwszy dzień tygodnia to nie musi być poniedziałek (konfiguracja) i że dni tygodnia mogą być liczone od 1 a nie od 0.

http://msdn.microsoft.com/en-us/library/ms174420
http://msdn.microsoft.com/en-us/library/83e378a2-6e89-4c80-bc4f-644958d9e0a9

0

Dzięki o coś takiego mi chodziło

1 użytkowników online, w tym zalogowanych: 0, gości: 1