Rumah > pangkalan data > tutorial mysql > Bagaimana Mengira Dengan Tepat Bilangan Bulan Penuh Antara Dua Tarikh dalam Pelayan SQL?

Bagaimana Mengira Dengan Tepat Bilangan Bulan Penuh Antara Dua Tarikh dalam Pelayan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-03 04:18:39
asal
366 orang telah melayarinya

How to Accurately Calculate the Number of Full Months Between Two Dates in SQL Server?

Mengira Bilangan Bulan Penuh Antara Dua Tarikh Menggunakan Fungsi Pelayan SQL

Mengira bilangan bulan penuh antara dua tarikh boleh menjadi cabaran dalam SQL Server. Pendekatan mudah menggunakan DATEDIFF mungkin tidak memberikan hasil yang tepat, kerana ia hanya mempertimbangkan perbezaan dalam bahagian bulan. Berikut ialah penyelesaian yang dipertingkat menggunakan UDF tersuai (Fungsi Ditentukan Pengguna) bernama FullMonthsSeparation:

CREATE FUNCTION FullMonthsSeparation 
(
    @DateA DATETIME,
    @DateB DATETIME
)
RETURNS INT
AS
BEGIN
    DECLARE @Result INT

    DECLARE @DateX DATETIME
    DECLARE @DateY DATETIME

    IF(@DateA < @DateB)
    BEGIN
        SET @DateX = @DateA
        SET @DateY = @DateB
    END
    ELSE
    BEGIN
        SET @DateX = @DateB
        SET @DateY = @DateA
    END

    SET @Result = (
                    SELECT 
                    CASE 
                        WHEN DATEPART(DAY, @DateX) > DATEPART(DAY, @DateY)
                        THEN DATEDIFF(MONTH, @DateX, @DateY) - 1
                        ELSE DATEDIFF(MONTH, @DateX, @DateY)
                    END
                    )

    RETURN @Result
END
GO
Salin selepas log masuk

UDF ini mengambil dua parameter masa tarikh, @DateA dan @DateB, dan mengira bilangan bulan penuh antara keduanya. Ia mengendalikan kes di mana tarikh kedua lebih awal daripada yang pertama. Begini cara menggunakan UDF:

SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-05-15') as MonthSep -- =0
SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-05-16') as MonthSep -- =1
SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-06-16') as MonthSep -- =2
Salin selepas log masuk

UDF mengira dengan tepat bilangan bulan penuh antara tarikh yang diberikan, memastikan hari dalam bulan itu diambil kira.

Atas ialah kandungan terperinci Bagaimana Mengira Dengan Tepat Bilangan Bulan Penuh Antara Dua Tarikh dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan