SQL Server’da Zaman Değerlerini Toplamak
Herkese merhaba,
Bu yazıda SQL Server’da zaman değerlerinin nasıl toplanabileceğinden bahsedeceğim.
SQL Server’da bazı durumlarda zaman değerlerini toplatmak ya da gruplayarak toplatmak isteyebiliriz. Ben işlemlerimi temp tablo kullanarak yaptım. Siz normal tablolarınızda da uygulayabilirsiniz.
Aşağıdaki kod yardımıyla siz de bu işlemleri rahatlıkla yapabilirsiniz.
IF OBJECT_ID('tempdb..#ZamanTablosu', 'U') IS NOT NULL
BEGIN
DROP TABLE #ZamanTablosu;
END;
--Tablonun oluşturulması
CREATE TABLE #ZamanTablosu
(
id INT,
Zaman TIME(0)
);
--Tabloya veri eklenmesi
INSERT INTO #ZamanTablosu
VALUES
(1, '00:00:10');
INSERT INTO #ZamanTablosu
VALUES
(1, '00:14:00');
INSERT INTO #ZamanTablosu
VALUES
(2, '00:00:10');
INSERT INTO #ZamanTablosu
VALUES
(2, '00:35:10');
--Zamanların toplanması
SELECT id,
CAST(DATEADD(MILLISECOND, SUM(DATEDIFF(MILLISECOND, 0, CAST(Zaman AS DATETIME))), 0) AS TIME(0)) AS ToplamZaman
FROM #ZamanTablosu
GROUP BY id;
Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere zaman değerleri id’ye göre gruplanarak toplanmış oldu. Bu işlemi şöyle düşünürsek her bir kullanıcının bir iş için harcadığı zaman, her bir kullanıcının satış için yaptığı görüşme süresi vb. gibi örnekler çoğaltılabilir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.