Yorumları: 670
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
18-04-2019, Saat: 12:47
(Son Düzenleme: 23-04-2019, Saat: 11:32, Düzenleyen: shooterman.)
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.
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
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...
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
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...
Yorumları: 670
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
(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.
Yorumları: 858
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.731 Uzman
18-04-2019, Saat: 14:10
(Son Düzenleme: 18-04-2019, Saat: 14:13, Düzenleyen: esistem.)
Ş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'
Yorumları: 670
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
(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
benim yazmış olduğum koda bunu nasıl uygulayabiliriz?
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 858
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.731 Uzman
18-04-2019, Saat: 14:27
(Son Düzenleme: 18-04-2019, Saat: 14:29, Düzenleyen: esistem.
Sebep: Düzenleme
)
(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
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ı
Yorumları: 670
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
(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
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
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.
Yorumları: 858
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.731 Uzman
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
Yorumları: 670
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
18-04-2019, Saat: 15:37
(Son Düzenleme: 18-04-2019, Saat: 15:42, Düzenleyen: shooterman.)
(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.
|