SQL Server’da Random Saat Değerleri Oluşturan Fonksiyon

Herkese merhaba,

Bu yazıda SQL Server’da random saat değerleri oluşturan fonksiyon hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda random saat değerleri oluşturmak isteyebiliriz. Burada yazılan fonksiyonda iki saat aralığı parametre olarak verilecek ve bu iki saat aralığı içinde bir saat değeri oluşturulacaktır.

Aşağıdaki kod yardımıyla bu işlemi rahatlıkla yapabilirsiniz.

--View oluşturma
CREATE VIEW vw_SaatRandom
AS
SELECT RAND() AS Saat;

--Fonksiyon oluşturma

CREATE FUNCTION IkiSaatArasiDegerOlusturma
(
    @BaslangicSaati VARCHAR(8),
    @BitisSaati VARCHAR(8)
)
RETURNS VARCHAR(8)
AS
BEGIN

    DECLARE @RandomSaatRakam INT;
    DECLARE @BaslangicSaatiRakam INT;
    DECLARE @BitisSaatiRakam INT;
    SET @BaslangicSaatiRakam = LEFT(@BaslangicSaati, 2) * 3600 + DATEDIFF(ss, 0, '00' + RIGHT(@BaslangicSaati, 6));
    SET @BitisSaatiRakam = LEFT(@BitisSaati, 2) * 3600 + DATEDIFF(ss, 0, '00' + RIGHT(@BitisSaati, 6));
    SELECT @RandomSaatRakam = ROUND(   ((@BaslangicSaatiRakam - @BitisSaatiRakam - 1) *
    (
        SELECT Saat FROM vw_SaatRandom
    )                                   + @BitisSaatiRakam
                                       ),
                                       0
                                   );
    RETURN CONVERT(CHAR(8), DATEADD(SECOND, @RandomSaatRakam, 0), 108);


END;

--Fonksiyon kullanımı
SELECT dbo.IkiSaatArasiDegerOlusturma('12:00:00', '13:00:00') AS SaatDegeri;

Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.

SQL Server’da Random Saat Değerleri Oluşturan Fonksiyon

Görüldüğü gibi random saat değeri oluşturulmuş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

314 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!