SQL Server’da İki Satır Arasındaki Süreyi Hesaplamak

SQL Server'da İki Satır Arasındaki Süreyi Hesaplamak
SQL Server'da İki Satır Arasındaki Süreyi Hesaplamak

Herkese merhaba. Bu yazıda SQL Server’da iki satır arasındaki süreyi hesaplamak ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda iki satır arasındaki süreyi hesaplamak isteyebilirsiniz.

Aşağıdaki örnek kodu kendinize göre revize ederek sizler de bu işlemi rahatlıkla yapabilirsiniz.

--Tablonun oluşturulması

CREATE TABLE TestTable(
Id INT PRIMARY KEY IDENTITY(1,1),
IslemId INT,
Durum NVARCHAR(20),
Tarih DATETIME
)


--Tabloya veri eklenmesi

INSERT INTO TestTable (IslemId, Durum, Tarih)
	VALUES (100, N'Başladı', '2022-08-01 08:00:00.000'),
	(101, N'Başladı', '2022-08-02 07:30:00.000'),
	(100, N'Durdu', '2022-08-03 17:00:00.000'),
	(102, N'Başladı', '2022-08-04 08:00:00.000'),
	(102, N'Durdu', '2022-08-04 17:00:00.000'),
	(101, N'Durdu', '2022-08-05 18:00:00.000')

-- Tablonun kontrol edilmesi

SELECT * FROM TestTable

--İki satır arasındaki süreyi hesaplamak

SELECT
	IslemId, 
	CONVERT(DATE, testTablosu.Tarih) AS 'Başlama Zamanı',
	CONVERT(DATE, taskEnd.Tarih) AS 'Bitiş Zamanı',
	DATEDIFF(day, testTablosu.Tarih, taskEnd.Tarih) as 'Gün Farkı'
FROM TestTable testTablosu
OUTER APPLY (
	SELECT TOP(1)
		taskEnd.Tarih
	FROM TestTable taskEnd
	WHERE 
		taskEnd.Tarih > testTablosu.Tarih
		AND taskEnd.Durum = 'Durdu'
		AND taskEnd.IslemId = testTablosu.IslemId
	ORDER BY Tarih
	) taskEnd
WHERE
	testTablosu.Durum = 'Başladı'

Yukarıdaki tabloyu oluşturup ilgili kodları çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.

Görüldüğü gibi iki satır arasındaki süreyi hesaplamış olduk.

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

71 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!