Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ]Tarih ve Saat aralığı sorgulama
#11
2019-03-18 21:59:59 yapmanız lazım ki 22:00:00 dan itibaren alsın sizde 22:01:01 den itibaren alıyor listeyi ki gördüğüm kadarı ile düzgün alıyor raporu. Dediğim gibi önce DATE_ADD fonksiyonlarının çıktılarını teyit edin.
WWW
Cevapla
#12
(18-04-2019, Saat: 16:51)esistem Adlı Kullanıcıdan Alıntı: 2019-03-18 21:59:59 yapmanız lazım ki 22:00:00 dan itibaren alsın sizde 22:01:01 den itibaren alıyor listeyi ki gördüğüm kadarı ile düzgün alıyor raporu. Dediğim gibi önce DATE_ADD fonksiyonlarının çıktılarını teyit edin.

Sevgili @esistem 

çıkan sorguyu tekrar resim olarak koyuyorum. Fonksiyona göre 18.03.2019 saat 22:00 den 20.03.2019 saat 06:00 ya kadar olan değer gelmesi sonra durması gerekiyor. Ancak dikkat ederseniz 07:00, 08:00, 09:00... devam ediyor.

   

benim sorgumun sonucu ise şu şekilde olmalı:

   
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#13
Abi niye zaman<= 06:00:00 yazıyosun ??? 2019-03-18 22:00:00 'a 8 saat ekliyceksin sen ise 2019-03-19 06:00:00 dan sonraya 8 saat ekliyosun, tabiki yanlış sonuç döndürür. 16 saat aralıklarla veriyor senin kodun sonucu

INTERVAL '0 8' DAY_HOUR 0 gün 8 saat ekle demektir.
WWW
Cevapla
#14
Sevgili arkadaşlarım,

Bu kadar uğraşmamıza rağmen bir çözüm bulamadık. Sanırım sorun MYSQL tarafında. Bu sebeple veritabanımı MSSQL olarak değiştirdim. Tabloyu burada açtım ve aşağıda yazmış olduğum sorgu ile istediğimi elde etmiş oldum. Sizlerle paylaşıyorum. Kodun çalıştırılması sonucunda, çıkan sonuçlar aşağıdaki gibidir.

select * from tagdegerleri 
WHERE (zaman BETWEEN '2019-03-18' AND '2019-03-20')
AND (convert(varchar, zaman, 24) > '22:00:00' or convert(varchar, zaman, 24) < '06:00:00')

Çıkan sonuç ise :

ALU_MUD_SAATLIK    2019-03-18 22:00:02.000
ALU_MUD_SAATLIK    2019-03-18 23:00:02.000
ALU_MUD_SAATLIK    2019-03-19 00:00:02.000
ALU_MUD_SAATLIK    2019-03-19 01:00:02.000
ALU_MUD_SAATLIK    2019-03-19 02:00:02.000
ALU_MUD_SAATLIK    2019-03-19 03:00:02.000
ALU_MUD_SAATLIK    2019-03-19 04:00:02.000
ALU_MUD_SAATLIK    2019-03-19 05:00:02.000
ALU_MUD_SAATLIK    2019-03-19 06:00:02.000
ALU_MUD_SAATLIK    2019-03-19 22:00:02.000
ALU_MUD_SAATLIK    2019-03-19 23:00:02.000
ALU_MUD_SAATLIK    2019-03-20 00:00:02.000
ALU_MUD_SAATLIK    2019-03-20 01:00:02.000
ALU_MUD_SAATLIK    2019-03-20 02:00:02.000
ALU_MUD_SAATLIK    2019-03-20 03:00:02.000
ALU_MUD_SAATLIK    2019-03-20 04:00:02.000
ALU_MUD_SAATLIK    2019-03-20 05:00:02.000
ALU_MUD_SAATLIK    2019-03-20 06:00:02.000
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#15
Hocam şu kod ile 2 tarih ve saat arasındaki farkı kendi DB'imde bulabiliyorum..

SELECT * FROM `mobil_lisanslar` WHERE uye_tar BETWEEN '2018-12-23 00:28:00' AND '2018-12-23 00:35:00';
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#16
Tam olarak şunu yazıp denermisiniz mysql de ;

SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '1:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)

SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)

olarak bende çalıştı az önce, sadece saniye eklemek gerekliymiş ilk date te
WWW
Cevapla
#17
(19-04-2019, Saat: 00:23)mcuyan Adlı Kullanıcıdan Alıntı: Hocam şu kod ile 2 tarih ve saat arasındaki farkı kendi DB'imde bulabiliyorum..

SELECT * FROM `mobil_lisanslar` WHERE uye_tar BETWEEN '2018-12-23 00:28:00' AND '2018-12-23 00:35:00';
 bir de bu şekilde çalıştırı mısınız?

SELECT * FROM `mobil_lisanslar` WHERE uye_tar BETWEEN '2018-12-23 21:28:00' AND '2018-12-25 04:35:00

sorun şu : ilk vermiş olduğunuz tarihteki saat, sonraki vermiş olduğunuz tarihteki saatten daha büyük olduğu için sorgulama değeri boş geliyor.

(19-04-2019, Saat: 08:43)esistem Adlı Kullanıcıdan Alıntı: Tam olarak şunu yazıp denermisiniz mysql de ;

SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '1:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)

SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)

olarak bende çalıştı az önce, sadece saniye eklemek gerekliymiş ilk date te
Selamlar hocam,

sizin kodunuz 1 günlük tarih aralığında sorunsuz çalışıyor.

SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)

Çıkan sonuç şu şekilde :

ALU_MUD_SAATLIK    2019-03-18 22:00:02    6800
ALU_MUD_SAATLIK    2019-03-18 23:00:02    6800
ALU_MUD_SAATLIK    2019-03-19 00:00:02    6800
ALU_MUD_SAATLIK    2019-03-19 01:00:02    6800
ALU_MUD_SAATLIK    2019-03-19 02:00:02    6800
ALU_MUD_SAATLIK    2019-03-19 03:00:02    6800
ALU_MUD_SAATLIK    2019-03-19 04:00:02    6800
ALU_MUD_SAATLIK    2019-03-19 05:00:02    6800

Peki, ben 10 günlük bir tarih aralığını sorgulayacaksam ne olacak? Kodu şu şekilde değiştirelim o zaman :

SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-28 22:00:00', INTERVAL '0 8' DAY_HOUR)

Çıkan sonuca bakarsanız, saat 05:00:00 dan sonraki değerleri de getiriyor. Oysaki bunun olmaması, saat : 05:00:00 ten sonraki satırda 19.03.2019 ve saat 22:00:00 kaydının başlaması gerekiyor

70810    ALU_MUD_SAATLIK    2019-03-18 22:00:02    6800        
70875    ALU_MUD_SAATLIK    2019-03-18 23:00:02    6800        
70940    ALU_MUD_SAATLIK    2019-03-19 00:00:02    6800        
71005    ALU_MUD_SAATLIK    2019-03-19 01:00:02    6800        
71070    ALU_MUD_SAATLIK    2019-03-19 02:00:02    6800        
71135    ALU_MUD_SAATLIK    2019-03-19 03:00:02    6800        
71200    ALU_MUD_SAATLIK    2019-03-19 04:00:02    6800        
71265    ALU_MUD_SAATLIK    2019-03-19 05:00:02    6800        
71330    ALU_MUD_SAATLIK    2019-03-19 06:00:02    6800        
71395    ALU_MUD_SAATLIK    2019-03-19 07:00:02    6800        
71460    ALU_MUD_SAATLIK    2019-03-19 08:00:02    6800        
71525    ALU_MUD_SAATLIK    2019-03-19 09:00:02    6800        
71590    ALU_MUD_SAATLIK    2019-03-19 10:00:02    6800        
71655    ALU_MUD_SAATLIK    2019-03-19 11:00:02    6800        
71720    ALU_MUD_SAATLIK    2019-03-19 12:00:02    6800        
71785    ALU_MUD_SAATLIK    2019-03-19 13:00:02    6800        
71850    ALU_MUD_SAATLIK    2019-03-19 14:00:02    6800        
71915    ALU_MUD_SAATLIK    2019-03-19 15:00:02    6800        
71980    ALU_MUD_SAATLIK    2019-03-19 16:00:02    6800        
72045    ALU_MUD_SAATLIK    2019-03-19 17:00:02    6800        
72110    ALU_MUD_SAATLIK    2019-03-19 18:00:02    6800        
72175    ALU_MUD_SAATLIK    2019-03-19 19:00:02    6800
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#18
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '10 0' DAY_HOUR) // 10 gün 0 saat ekledik
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '1 10' DAY_HOUR) // 1 gün 10 saat ekledik

neden şu tarihi değiştirip duruyorsun anlamıyorum ? DAY_HOUR GÜN VE SAAT ekle demektir, başlangıç tarihin hep aynı olucak yani.

2019-03-18 21:59:59 ' a 0:1 dersen 1 saniye ekliyor, oluyor sana 2019-03-18 22:00:00
zaman<= derken de başlangıç tarih ve saatin yukarıdaki ile aynı aynı olmalı ki sen üstüne kaç gün kaç saat istiyosan ekleyebilesin.
------------------------------------------------------------------------------------------------------------------------------------
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR) // 8 saat ekledik
------------------------------------------------------------------------------------------------------------------------------------
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '1 10' DAY_HOUR) // 1 gün 10 saat ekledik
------------------------------------------------------------------------------------------------------------------------------------
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '-1 10' DAY_HOUR) // 1 gün çıkartıp 10 saat ekledik

Fakat siz her günün aynı saat aralıklarındaki değerlerini ayrı ayrı almak istiyorsunuz sanırım, yani ayın 15 inin belirli saat aralığı, 16 sının belirli saat aralığı, 17 sinin belirli saat aralığı gibi mi????
WWW
Cevapla
#19
(19-04-2019, Saat: 12:50)esistem Adlı Kullanıcıdan Alıntı: zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '10 0' DAY_HOUR) // 10 gün 0 saat ekledik
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '1 10' DAY_HOUR) // 1 gün 10 saat ekledik

neden şu tarihi değiştirip duruyorsun anlamıyorum ? DAY_HOUR GÜN VE SAAT ekle demektir, başlangıç tarihin hep aynı olucak yani.

2019-03-18 21:59:59 ' a 0:1 dersen 1 saniye ekliyor, oluyor sana 2019-03-18 22:00:00
zaman<= derken de  başlangıç tarih ve saatin yukarıdaki ile aynı aynı olmalı ki sen üstüne kaç gün kaç saat istiyosan ekleyebilesin.
------------------------------------------------------------------------------------------------------------------------------------
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR) // 8 saat ekledik
------------------------------------------------------------------------------------------------------------------------------------
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '1 10' DAY_HOUR) // 1 gün 10 saat ekledik
------------------------------------------------------------------------------------------------------------------------------------
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '-1 10' DAY_HOUR) // 1 gün çıkartıp 10 saat ekledik

Fakat siz her günün aynı saat aralıklarındaki değerlerini ayrı ayrı almak istiyorsunuz sanırım, yani ayın 15 inin belirli saat aralığı, 16 sının belirli saat aralığı, 17 sinin belirli saat aralığı gibi mi????

Kesinlikle üstadım. yani ayın 15 inin belirli saat aralığı, 16 sının belirli saat aralığı, 17 sinin belirli saat aralığı gibiSmile
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#20
o zaman tarih ve saat aralığını seçtirip her gün için dongu kurup sql kodu üreticeksiniz.
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 181 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.253 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 451 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 694 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 637 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68



Konuyu Okuyanlar: 2 Ziyaretçi