Saat farkı toplamını bulma

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Saat farkı toplamını bulma

Mesaj gönderen adelphiforumz »

S.A.

SQL server üzerinde 2 adet datetime türünde alanım var bunların içerisinde sadece saat bilgileri yer alıyor.
benim yapmak istediğim bu iki saat farkını dakika cinsinden bulmak ve olan tüm kayıtları dakika cinsinden toplamak
sonra bu toplam dakikayı kişinin karsına saat cinsinden göstermek istiyorum mümkünmüdür.

Örnek Data
09:00 - 15:00
09:00 - 13:00
09:00 - 17:00

Yapmak istediğim ise
09:00 - 15:10 370 dk
09:00 - 13:10 250 dk
09:00 - 17:10 490 dk
bunların toplamı 1110 dk. yapıyor

kişinin karşına bu bilgileri gösterirken sadece
18:50 şeklinde göstermem gerekiyor.

yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Saat farkı toplamını bulma

Mesaj gönderen Hakan Can »

DATEDIFF fonksiyonunu kullanabilirsiniz.

Örnek bir SQL komutu:

Kod: Tümünü seç

SELECT
  BUTCE_KODU, DEPARTMAN, KADEME, ALT_KADEME, SICIL_NO, GIRIS_TARIHI, CIKIS_TARIHI,
  DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) AS "Kaç Dakika",
  DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) / 60 AS "Kaç Saat",
  DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) - ((DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) / 60) * 60) AS "Kalan Dakika",
  CAST(DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) / 60 AS VARCHAR(10)) + ':' +
    CASE WHEN DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) - ((DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) / 60) * 60) < 10 THEN '0' ELSE '' END +
    CAST(DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) - ((DATEDIFF("Minute", GIRIS_TARIHI, CIKIS_TARIHI) / 60) * 60) AS VARCHAR(10)) AS "Sonuç"
FROM PERSONEL_HAREKET
WHERE CIKIS_TARIHI IS NOT NULL
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Saat farkı toplamını bulma

Mesaj gönderen conari »

Selam

integerı şu script ile gösterebilirsiniz.

Kod: Tümünü seç

select convert(char(5),
dateadd(minute, 
DateDiff(minute, '09:00','17:30')
, ''), 108)
DateDiff(minute, '09:00','17:30')Burası ilk ve son saat aralığıdır.(dakika) integer değer döner.buda gösteriş olarak saat, dakikaya çevrilir bunu biliyorsanız direk yazabilirsiniz.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla