Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Tarikh Mula dan Tamat Minggu daripada Nombor Minggu dalam SQL?

Bagaimana untuk Mengira Tarikh Mula dan Tamat Minggu daripada Nombor Minggu dalam SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-07 00:52:40970semak imbas

How to Calculate Week Start and End Dates from a Week Number in SQL?

Mendapatkan Tarikh Mula dan Tamat Minggu daripada Nombor Minggu dalam SQL

Dalam senario di mana anda mempunyai pertanyaan yang mengira kiraan perkahwinan untuk ahli dikumpulkan mengikut tahun dan nombor minggu, adalah berguna untuk menentukan tarikh mula dan tamat untuk setiap minggu.

Untuk mencapai matlamat ini, anda boleh menggabungkan pengiraan berdasarkan hari dalam minggu dan gunakan fungsi DATEADD.

Jawapan:

Anda boleh menggunakan ungkapan berikut untuk mengira tarikh mula minggu dan tarikh akhir minggu:

  • Mula Minggu: DATEADD(dd, -(DATEPART(dw, WeddingDate)-1), WeddingDate)
  • Week End: DATEADD(dd, 7-(DATEPART(dw, WeddingDate)), WeddingDate)

Penjelasan:

  • DATEPART(dw, Tarikh Perkahwinan): Mengembalikan hari dalam minggu untuk Tarikh Perkahwinan (1=Ahad, 7=Sabtu).
  • -(DATEPART(dw, WeddingDate)-1): Menolak hari dalam minggu (tolak 1) untuk mendapatkan bilangan hari sebelum permulaan minggu (mis., jika hari Rabu, tolak 2).
  • DATEADD(dd, ...): Menambah bilangan hari yang ditentukan pada Tarikh Perkahwinan (cth., menambah 2 hari kepada Rabu memberikan hari Isnin).

Contoh:

Jika Tarikh Perkahwinan adalah '2023-03-08' (Rabu), pengiraannya ialah:

  • Mula Minggu: DATEADD(dd, -(DATEPART(dw, '2023-03-08')-1), '2023-03-08') = '2023-03-06' (Isnin)
  • Hujung Minggu: DATEADD(hr, 7-(DATEPART(dw, '2023-03-08')), '2023-03-08') = '2023-03-12' ( Ahad)

Atas ialah kandungan terperinci Bagaimana untuk Mengira Tarikh Mula dan Tamat Minggu daripada Nombor Minggu dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn