Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ]Tarih ve Saat aralığı sorgulama
#1
Arkadaşlar selamlar,

Daha önce burada sorduğum ve cevabını bulduğumuz bir konuda, tekrar hata yaşamaya başladım. MYSQL veitabanında olan datetime alanındaki verileri sorgularken, aşağıdaki kodu kullanıyorum

select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and zaman between '2019-03-18' and '2019-04-18' AND DATE_FORMAT(zaman, '%H' ) BETWEEN '22:00:00' AND '06:00:00'

Ancak sorgu sonucu boş çıkıyor. Fakat sorgudaki saat aralığını tam tersine yaparsam
DATE_FORMAT(zaman, '%H' ) BETWEEN '06:00:00' AND '22:00:00'
bu şekilde raporlar geliyor. Fakat istediğim sonuç değil çünkü, 8 saatlik veri sorgulamam gerekirken, 16 saatlik veri sorguluyorum. Kodun doğru yazılımı konusunda yardımlarınızı rica ederim.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#2
Ben MySQL'de uzman değilim ama DATE_FORMAT(, '%H') ile sadece saat bilgisini elde edip (Yani 13:45'in 13 'ünü) bu değerin '22:00' arasında olduğunu sorgulamak biraz garip değil mi ?
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
Size TIME ya da HOUR fonksiyonlarını ihtiyacınıza göre kullanmanızı öneririm.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#4
(18-04-2019, Saat: 13:45)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Ben MySQL'de uzman değilim ama DATE_FORMAT(, '%H') ile sadece saat bilgisini elde edip (Yani 13:45'in 13 'ünü) bu değerin '22:00' arasında olduğunu sorgulamak biraz garip değil mi ?

Sevgili Hocam,

verilerim bu şekilde kayıtlı olduğu için, bir enerji hesaplaması yapmam gerekiyor. Yani iki tarih aralığındaki, Akşam 22:00 ile sabah 06:00 aralığındaki verileri sorgulamam gerekiyor.

   
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#5
Şu fonksiyonu kullanarak işlem yapablirsiniz sanırım

SELECT DATE_ADD('2011-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) # '2012-01-01 00:01:00'

yada;
SELECT DATE_ADD('2011-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR) # '2010-12-30 14:00:00'
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#6
(18-04-2019, Saat: 14:10)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Şu fonksiyonu kullanarak işlem yapablirsiniz sanırım

SELECT DATE_ADD('2011-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) # '2012-01-01 00:01:00'

yada;
SELECT DATE_ADD('2011-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR) # '2010-12-30 14:00:00'

Tam olarak bunu anlayamadığım için uygulayamadım Sad
benim yazmış olduğum koda bunu nasıl uygulayabiliriz?
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#7
(18-04-2019, Saat: 14:21)wiseman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(18-04-2019, Saat: 14:10)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Şu fonksiyonu kullanarak işlem yapablirsiniz sanırım

SELECT DATE_ADD('2011-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) # '2012-01-01 00:01:00'

yada;
SELECT DATE_ADD('2011-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR) # '2010-12-30 14:00:00'

Tam olarak bunu anlayamadığım için uygulayamadım Sad
benim yazmış olduğum koda bunu nasıl uygulayabiliriz?
SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and 
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '1:1' MINUTE_SECOND) // çıktısı 2019-03-18 22:00:00 olmalı
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR) // çıktısı 2019-03-19 06:00:00 olmalı 8 saat ekledik
sanırım yukardaki şekilde olmalı

tabi bu arada tablonuzda zaman alanı datetime olmalı
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#8
(18-04-2019, Saat: 14:27)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(18-04-2019, Saat: 14:21)wiseman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Tam olarak bunu anlayamadığım için uygulayamadım Sad
benim yazmış olduğum koda bunu nasıl uygulayabiliriz?
SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and 
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '1:1' MINUTE_SECOND) // çıktısı 2019-03-18 22:00:00 olmalı
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR) // çıktısı 2019-03-19 06:00:00 olmalı 8 saat ekledik
sanırım yukardaki şekilde olmalı

tabi bu arada tablonuzda zaman alanı datetime olmalı
Yine olmadı hocam Sad

bir türlü 18.03.2019 saat 22:00 - 19:03:2019 saat 06:00 aralığındaki saat başı kaydettiğim verileri sorgulayamadım.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#9
yazdığımız kodun çıktısı ne oluyor peki? goruntusunu koysan buraya ? ayrıca date_add fonksiyonlarının çıktılarınıda kontrol etmen lazım
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#10
(18-04-2019, Saat: 15:29)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.yazdığımız kodun çıktısı ne oluyor peki? goruntusunu koysan buraya ? ayrıca date_add fonksiyonlarının çıktılarınıda kontrol etmen lazım

Sizin kodun sonucunu buraya koydum

   

(18-04-2019, Saat: 13:45)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Ben MySQL'de uzman değilim ama DATE_FORMAT(, '%H') ile sadece saat bilgisini elde edip (Yani 13:45'in 13 'ünü) bu değerin '22:00' arasında olduğunu sorgulamak biraz garip değil mi ?

Tuğrul Hocam,

datetime olan bir alandaki tarih ve saat şartına göre sorgulama yapmak için başka bir kod bulamadım. MYSQL olması önemli değil, elektrik sayacının gece saat 22:00 den sabah 06:00 ya kadar kayıt ettiği saat başı tüketimi sorgulayacağım. Sorunum bu. 10 günlük bir tarih aralığı verdiysem, 10 günlük saat 22.00 - 06:00 aralığındaki gece tüketimini sorgulmam gerekiyor.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  ÇÖZÜLDÜ-timer kullanmadan saat kontrolü mümkünmü? sadikacar60 3 145 10-09-2019, Saat: 22:19
Son Yorum: sadettinpolat
  [ÇÖZÜLDÜ] cxgrid hücre formatı wiseman 2 80 10-09-2019, Saat: 13:53
Son Yorum: wiseman
  [ÇÖZÜLDÜ]Server İşletim Sisteminde Çalışan Windows Servis te is not a valid date Hata theSinan 9 246 28-08-2019, Saat: 10:05
Son Yorum: adelphiforumz
  ÇÖZÜLDÜ-daha önce çalışan kod hata veriyor firebird sadikacar60 5 197 25-08-2019, Saat: 21:07
Son Yorum: mcuyan
  ÇÖZÜLDÜ - Veritabanındaki saat alanını düzenleme wiseman 10 381 24-07-2019, Saat: 21:41
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi