Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Rekod Bulan Lalu dengan Cekap daripada Jadual Pelayan SQL?

Bagaimana untuk Mendapatkan Rekod Bulan Lalu dengan Cekap daripada Jadual Pelayan SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-02 16:29:42165semak imbas

How to Efficiently Retrieve Last Month's Records from a SQL Server Table?

Mengambil semula Rekod Bulan Lalu dalam SQL Server

Masalah:

Dapatkan rekod daripada jadual pangkalan data [ahli] yang jatuh dalam bulan sebelumnya, berdasarkan tarikh_dicipta medan.

Penyelesaian:

Untuk mendapatkan semula rekod bulan lepas dengan cekap dan tepat, kita perlu mengelakkan perangkap tertentu dan menggunakan pendekatan berikut:

  1. Gunakan Julat Eksklusif Penapisan:

    Daripada menggunakan julat inklusif (cth., ANTARA operator), gunakan penapisan julat eksklusif dengan > dan < pengendali. Ini memastikan bahawa rekod dari kedua-dua hari pertama dan terakhir bulan disertakan.

  2. Kira Sempadan Bulan:

    Terbitkan permulaan bulan sebelumnya dan permulaan bulan semasa menggunakan fungsi tarikh yang sesuai. Ini mengelakkan potensi isu yang disebabkan oleh julat sempadan atas yang inklusif.

    • Mula Bulan Sebelumnya: DATEADD(bulan, -1, @startOfCurrentMonth)
    • Mula Bulan Semasa: DATEADD(bulan , DATEDIFF(bulan, 0, CURRENT_TIMESTAMP), 0)
  3. Sampel Pertanyaan:

    DECLARE @startOfCurrentMonth DATETIME
    SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
    
    SELECT *
    FROM Member
    WHERE date_created >= DATEADD(month, -1, @startOfCurrentMonth)
      AND date_created < @startOfCurrentMonth

Pendekatan ini memastikan indeks digunakan, data rasuah dicegah dan rekod yang betul diperoleh semula dalam tempoh masa yang ditetapkan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Rekod Bulan Lalu dengan Cekap daripada Jadual Pelayan 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