PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Uzyskaj numer tygodnia z daty w PostgreSQL

W PostgreSQL możesz użyć extract() funkcja, aby uzyskać numer tygodnia z daty.

Możesz także użyć date_part() funkcja, aby zrobić to samo.

Przykład 1:Funkcja extract()

Oto przykład użycia extract() funkcja wyodrębniania tygodnia z daty.

SELECT extract(week from date '2020-12-27') AS "Week Number";

Wynik:

 Week Number 
-------------
          52

Przykład 2:Funkcja date_part()

Oto jak zrobić to samo za pomocą date_part() funkcja.

SELECT date_part('week', date '2020-12-27') AS "Week Number";

Wynik:

 Week Number 
-------------
          52

Przykład 3:Informacje o systemie numerowania tygodni ISO

Jeśli uzyskasz wyniki, których nie oczekiwałeś, może to być spowodowane sposobem zdefiniowania numeracji tygodni ISO.

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.

Przykład:

SELECT 
  extract(week from date '2021-01-03') AS "2021-01-03",
  extract(week from date '2021-01-04') AS "2021-01-04";

Wynik:

 2021-01-03 | 2021-01-04 
------------+------------
         53 |          1

W tym przypadku 3 stycznia 2021 r. jest nadal częścią ostatniego tygodnia 2020 r. Pierwszy tydzień 2021 r. zaczyna się dopiero 4 stycznia.

Poniżej znajduje się kolejny przykład, który pokazuje datę na koniec roku będącą częścią pierwszego tygodnia następnego roku.

SELECT 
  extract(week from date '2024-12-29') AS "2024-12-29",
  extract(week from date '2024-12-30') AS "2024-12-30";

Wynik:

 2024-12-29 | 2024-12-30 
------------+------------
         52 |          1

W tym przypadku 29 grudnia 2024 jest częścią ostatniego tygodnia 2024, ale jak tylko dojdziemy do 30 grudnia, jesteśmy w pierwszym tygodniu 2025.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfiguracja bazy danych ActiveRecord::AdapterNotSpecified nie określa adaptera

  2. Jak mogę zmienić istniejącą kolumnę jako Tożsamość w PostgreSQL 11.1?

  3. Czy SELECT lub INSERT w funkcji podatne na wyścigi?

  4. Jak działa funkcja Radians() w PostgreSQL

  5. Blokady doradcze czy NOWAIT, aby uniknąć czekania na zablokowane wiersze?