Mysql ile süre farkı
-
- Üye
- Mesajlar: 254
- Kayıt: 16 Şub 2004 06:12
- Konum: istanbul
Mysql ile süre farkı
Merhaba,
Aşağıdaki mysql ile aşağıdaki sorgu ile nasıl veri çekebilirim.
seleck (gc.cikissaati-gc.girissaati) as fark from giriş_cıkıs
Giriş Çıkış Fark
09:06:00 18:00:00 08:54:00
11:06:00 17:35:00 06:29:00
Aşağıdaki mysql ile aşağıdaki sorgu ile nasıl veri çekebilirim.
seleck (gc.cikissaati-gc.girissaati) as fark from giriş_cıkıs
Giriş Çıkış Fark
09:06:00 18:00:00 08:54:00
11:06:00 17:35:00 06:29:00
Re: Mysql ile süre farkı
select TIMEDIFF(gc.cikissaati,girissaati) as fark
-
- Üye
- Mesajlar: 254
- Kayıt: 16 Şub 2004 06:12
- Konum: istanbul
Re: Mysql ile süre farkı
Teşekkür ederim.
-
- Üye
- Mesajlar: 254
- Kayıt: 16 Şub 2004 06:12
- Konum: istanbul
Re: Mysql ile süre farkı
Merhaba,
Mysql de sorgu verileri eksik geliyor (satır sayısı olarak) sonucu kısıtlayan bir bölüm mü var ?
sorgu için MySQLMacroQuery1 bileşenini kullanıyorum.
kolay gelsin...
Mysql de sorgu verileri eksik geliyor (satır sayısı olarak) sonucu kısıtlayan bir bölüm mü var ?
sorgu için MySQLMacroQuery1 bileşenini kullanıyorum.
kolay gelsin...
Re: Mysql ile süre farkı
TIMEDIFF kullanımı ile alakalımıdır diyorsan alakası yoktur. "Where" den sonra yazdığın koşulları kontro et.
-
- Üye
- Mesajlar: 254
- Kayıt: 16 Şub 2004 06:12
- Konum: istanbul
Re: Mysql ile süre farkı
where den sonra ki kısmı da sildim şartsız olarak ta aynı satır sayısı dönüyor, şartlarla da aynı satır sayısı dönüyor 86 satır ile sanki sabitlenmiş.
Re: Mysql ile süre farkı
Kullandığın bileşen ayarlarına bak. SQL ile alakalı bir duruma değil o zaman
-
- Üye
- Mesajlar: 254
- Kayıt: 16 Şub 2004 06:12
- Konum: istanbul
Re: Mysql ile süre farkı
Merhaba,
Aşaığdaki sorgu ile personele ait gün içindeki tüm giriş çıkışlarını sorguluyorum ama buna ek olarak bu giriş çıkışların toplamlarını almak istiyorum nasıl yapabilirim ?
Teşekkür ederim.
Aşaığdaki sorgu ile personele ait gün içindeki tüm giriş çıkışlarını sorguluyorum ama buna ek olarak bu giriş çıkışların toplamlarını almak istiyorum nasıl yapabilirim ?
Teşekkür ederim.
Kod: Tümünü seç
SELECT gc.id,
gc.personelid,
p.ad,
p.soyad,
gc.giristarihi,
CASE
WHEN WEEKDAY(gc.giristarihi)=1 then 'Salı'
when WEEKDAY(gc.giristarihi)=2 then 'Çarşamba'
when WEEKDAY(gc.giristarihi)=3 then 'Perşembe'
when WEEKDAY(gc.giristarihi)=4 then 'Cuma'
when WEEKDAY(gc.giristarihi)=5 then 'Cumartesi'
when WEEKDAY(gc.giristarihi)=6 then 'Pazar'
when WEEKDAY(gc.giristarihi)=0 then 'Pazartesi'
END AS Gun,
p.kartno,
p.sicilno,
F.ad AS Firma,
B.ad AS `Bölüm`,
g.ad AS `Görevi`,
CAST(Min(gc.girissaati) As Time) AS GirisZaman,
CAST(Max(gc.cikissaati) As Time) AS CikisZaman,
TIMEDIFF(cast(Max(gc.cikissaati) As Time),CAST(Min(gc.girissaati) As Time)) as Sure,
SUM(TIMEDIFF(cast(Max(gc.cikissaati) As Time),CAST(Min(gc.girissaati) As Time)))
FROM
gc_giriscikis gc
JOIN personel p ON (p.id = gc.personelid)
JOIN bolum AS B ON (B.id = P.bolumid)
JOIN grup AS g ON (g.id = P.grupid)
JOIN firma AS F ON (F.id = P.firmaid)
where P.DURUM ='Aktif' and gc.id=gc.id
group by 5,1
order by gc.giristarihi
-
- Üye
- Mesajlar: 254
- Kayıt: 16 Şub 2004 06:12
- Konum: istanbul
Re: Mysql ile süre farkı
Merhaba,
Çözümü buldum başka birinin ihtiyacı olur diye yazıyorum.
İlgili satır
Çözümü buldum başka birinin ihtiyacı olur diye yazıyorum.
İlgili satır
Kod: Tümünü seç
SEC_TO_TIME(SUM(TIME_TO_SEC(gc.cikissaati) - TIME_TO_SEC(gc.girissaati))) AS Sure,
Re: Mysql ile süre farkı
select (gc.cikissaati-gc.girissaati) as fark from giriş_cıkıs ya da select TIMEDIFF(gc.cikissaati,girissaati) as fark
aynı gün içerisinde olur,peki kişi 01.01.2014 tarihinde 08:00:00'da girdi 02.01.2014 tarihinde 06:00:00 da çıktı , o zaman nasıl olacak?
sizin tablolarınız mysql de oluşturup aşağıdaki sorguyu çalıştırdığımda "SQL Error (1111): Invalid use of group function " hatası veriyor (MYSQL 5.1.4 versiyonu kullanıyorum)
bu kodda group by 5,1 nedir
aynı gün içerisinde olur,peki kişi 01.01.2014 tarihinde 08:00:00'da girdi 02.01.2014 tarihinde 06:00:00 da çıktı , o zaman nasıl olacak?
sizin tablolarınız mysql de oluşturup aşağıdaki sorguyu çalıştırdığımda "SQL Error (1111): Invalid use of group function " hatası veriyor (MYSQL 5.1.4 versiyonu kullanıyorum)
Kod: Tümünü seç
SELECT gc.id,
gc.personelid,
p.ad,
p.soyad,
gc.giristarihi,
CASE
WHEN WEEKDAY(gc.giristarihi)=1 then 'Salı'
when WEEKDAY(gc.giristarihi)=2 then 'Çarşamba'
when WEEKDAY(gc.giristarihi)=3 then 'Perşembe'
when WEEKDAY(gc.giristarihi)=4 then 'Cuma'
when WEEKDAY(gc.giristarihi)=5 then 'Cumartesi'
when WEEKDAY(gc.giristarihi)=6 then 'Pazar'
when WEEKDAY(gc.giristarihi)=0 then 'Pazartesi'
END AS Gun,
p.kartno,
p.sicilno,
F.ad AS Firma,
B.ad AS `Bölüm`,
g.ad AS `Görevi`,
CAST(Min(gc.girissaati) As Time) AS GirisZaman,
CAST(Max(gc.cikissaati) As Time) AS CikisZaman,
TIMEDIFF(cast(Max(gc.cikissaati) As Time),CAST(Min(gc.girissaati) As Time)) as Sure,
SUM(TIMEDIFF(cast(Max(gc.cikissaati) As Time),CAST(Min(gc.girissaati) As Time)))
FROM
gc_giriscikis gc
JOIN personel p ON (p.id = gc.personelid)
JOIN bolum AS B ON (B.id = P.bolumid)
JOIN grup AS g ON (g.id = P.grupid)
JOIN firma AS F ON (F.id = P.firmaid)
where P.DURUM ='Aktif' and gc.id=gc.id
group by 5,1
order by gc.giristarihi
bu kodda group by 5,1 nedir