Chcę obliczyć numer tygodnia w miesiącu, chcę obliczyć liczbę tygodni, czy jego dziwny, a nawet tydzień, jak mogę to uzyskać w TSQL? Dzięki wszystkim!TSQL Oblicz numer tygodnia w miesiącu
Odpowiedz
To daje tygodnia od daty @dt w jej miesiącu. Jest 2nd kolumna, która wykorzystuje oświadczenie CASE nad wypowiedzi, aby pokazać albo „Nieparzyste” lub „Parzyste”
declare @dt datetime
set @dt = GETDATE()
select
WhichWeekOfMonth = datepart(wk, @dt)
- datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1,
case when (datepart(wk, @dt)
- datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1) % 2 = 1
then 'Odd' else 'Even' end
To jest wspaniały Richard. Czy możesz również pomóc, w jaki sposób możemy zrobić odwrotny proces - Pod warunkiem, że miesiąc i numer tygodnia, możemy uzyskać pierwsze i ostatnie daty w tym tygodniu? – Jinith
Spróbuj tego:
SELECT (DATEPART(d, '02/07/2011')/7)%2 AS WeekNo, --Replace your date column in place of '02/07/2011'
CASE (DATEPART(d, '02/07/2011')/7)%2
WHEN 1 THEN 'Odd'
ELSE 'Even'
END AS WeekType
daje złą odpowiedź (według mojej definicji - patrz mój odpowiedź) - mówi, że jest w tygodniu 1 – RichardTheKiwi
Powyższe zapytanie podaje, czy dla podanej daty tygodnia jest tygodniowy czy nieparzysty tydzień miesiąca ... – Chandu
To daje tygodniową liczbę dla każdego miesiąca
declare @dates datetime
select @dates='2011-03-22'
SELECT datepart(dd,@dates), ceiling (cast(datepart(dd,@dates)as numeric(38,8))/7)
jak o coś czytelny, łatwo konfigurowalny i przewidywalne ...
DECLARE @dayOfMonth AS INT;
SET @dayOfMonth = DATEPART(DAY, '3/14/2013');
SELECT CASE
WHEN @dayOfMonth < 8 THEN 1
WHEN @dayOfMonth < 15 THEN 2
WHEN @dayOfMonth < 22 THEN 3
ELSE 4
END AS weekOfMonth;
myślę, że to sprawia, że podejście bardzo oczywiste:
DECLARE @DayOne DATETIME
DECLARE @ThisDay DATETIME
SET @ThisDay = GETDATE()
SET @DayOne = CAST(CAST(MONTH(@ThisDay) AS VARCHAR) + '/1/' + CAST(YEAR(@ThisDay) AS VARCHAR) AS DATETIME)
SELECT (DATEPART(wk, @ThisDay) - DATEPART(wk, @DayOne) + 1) AS [Week Of Month]
SQL Server 2012 posiada funkcję CONCAT które mogą być używane łatwiej zbudować ciąg DayOne:
DECLARE @DayOne DATETIME
DECLARE @ThisDay DATETIME
SET @ThisDay = GETDATE()
SET @DayOne = CAST(CONCAT(MONTH(@ThisDay), '/1/', YEAR(@ThisDay)) AS DATETIME)
SELECT (DATEPART(wk, @ThisDay) - DATEPART(wk, @DayOne) + 1) AS [Week Of Month]
- 1. Oblicz numer tygodnia (0-53) w roku
- 2. Jak uzyskać listę dni tygodnia w miesiącu?
- 3. TSQL odzyskaj wszystkie rekordy w bieżącym miesiącu/roku
- 4. Funkcja Uzyskiwanie prawidłowego tygodnia numer
- 5. Oblicz datę początkową i końcową poprzedniego tygodnia
- 6. Jak wyodrębnić numer tygodnia w sql
- 7. Uzyskaj numer tygodnia w pakiecie SDK iOS
- 8. Datownik JQuery zwraca numer tygodnia i dzień tygodnia
- 9. Konwersja daty pandy na numer tygodnia
- 10. Uzyskaj numer tygodnia od podanej daty
- 11. Jak przekonwertować numer tygodnia na datę w JavaScript
- 12. Rails 3.2.8 - Jak uzyskać numer tygodnia z Rails?
- 13. Jak obliczyć numer tygodnia dla podanej daty Android
- 14. Jak uzyskać numer dnia tygodnia za pomocą Powershell?
- 15. Jak mogę obliczyć/znaleźć numer tygodnia z podanej daty?
- 16. Tydzień tygodnia w formacie daty
- 17. Jak uzyskać liczbę tygodni w miesiącu
- 18. Liczba niedziel w bieżącym miesiącu
- 19. Określić liczbę dni w miesiącu
- 20. Wyłącz miesiące w miesiącu/DatePicker
- 21. Liczba szyn tygodniowych w miesiącu
- 22. Transakcje zagnieżdżone w TSQL
- 23. Oblicz całkowite sekundy w PHP DataInterval
- 24. Określanie TSQL w zależności od najwyższej daty
- 25. Tworzenie widoków aktualizowalnych w TSQL
- 26. Wiele instrukcji jak w TSQL
- 27. Co robi "%% DatabaseEx" w TSQL?
- 28. Jak używać pętli w TSQL?
- 29. Co oznacza symbol "#" w TSQL?
- 30. Funkcja w ramach funkcji TSQL
listy kilka przykładowych dat i oczekiwany wynik – RichardTheKiwi