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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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ı: 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.

   
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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'
WWW
Cevapla
#6
(18-04-2019, Saat: 14:10)esistem Adlı Kullanıcıdan Alıntı: Ş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?
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#7
(18-04-2019, Saat: 14:21)wiseman Adlı Kullanıcıdan Alıntı:
(18-04-2019, Saat: 14:10)esistem Adlı Kullanıcıdan Alıntı: Ş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ı
WWW
Cevapla
#8
(18-04-2019, Saat: 14:27)esistem Adlı Kullanıcıdan Alıntı:
(18-04-2019, Saat: 14:21)wiseman Adlı Kullanıcıdan Alıntı: 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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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
WWW
Cevapla
#10
(18-04-2019, Saat: 15:29)esistem Adlı Kullanıcıdan Alıntı: 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ı: 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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 111 17-04-2024, Saat: 10:58
Son Yorum: Bay_Y
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 237 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.352 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 513 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 776 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi