Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyodrębnij numer tygodnia z daty w SQL Server (T-SQL)

Możesz użyć funkcji T-SQL DATEPART() aby zwrócić numer tygodnia z daty w SQL Server.

Przez „numer tygodnia” rozumiem numer tygodnia w roku podanej daty.

Przykład

Aby zwrócić numer tygodnia, użyj week jako pierwszy argument funkcji DATEPART() funkcja.

DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);

Wynik:

30

Alternatywne argumenty

Alternatywnie możesz użyć wk lub ww jako pierwszy argument, który robi to samo.

DECLARE @date date = '2024-07-20';
SELECT 
    DATEPART(week, @date) AS week,
    DATEPART(wk, @date) AS wk,
    DATEPART(ww, @date) AS ww;

Wynik:

+--------+------+------+
 | week   | wk   | ww   |
 |--------+------+------|
 | 29     | 29   | 29   |
 +--------+------+------+  

Zauważysz, że numer tygodnia w tych wynikach różni się od numeru tygodnia w poprzednim przykładzie, mimo że w obu przykładach użyto 20 lipca jako daty. Tego można było się spodziewać.

W dwóch przykładach użyto innego roku. Na numer tygodnia może mieć wpływ rok. Innymi słowy, tylko dlatego, że 20 lipca jest 30 tygodniem w roku, nie oznacza to, że będzie to 30 tydzień każdego roku. Po prostu coś, o czym należy pamiętać.

Numer tygodnia ISO

Możesz również zwrócić numer tygodnia ISO z daty, używając iso_week argument. Tygodnie ISO zaczynają się w poniedziałki, a pierwszy tydzień roku zawiera 4 stycznia tego roku.

Dlatego możliwe jest, że daty na początku stycznia będą częścią 52. lub 53. tygodnia poprzedniego roku, a daty pod koniec grudnia będą częścią pierwszego tygodnia następnego roku.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 obszary, które skorzystają na wykorzystaniu narzędzia do monitorowania wydajności serwera SQL

  2. CREATE TABLE IF NOT EXISTS odpowiednik w SQL Server

  3. Przechowywana procedura i uprawnienia — czy WYKONANIE wystarczy?

  4. Nie można otworzyć testu bazy danych żądanego podczas logowania. Logowanie nie powiodło się. Logowanie nie powiodło się dla użytkownika „xyz\ASPNET”

  5. Przykłady COS() w SQL Server