MySQL ile gelişmiş tarih sorguları yapmak ister misiniz? Örneğin geçen haftanın, ya da belli tarih aralığındaki verileri çekmek? İşte bunlardan birkaç tane örneklendiriyorum.
Birkaç örnek ile tarih sorgularını inceleyelim.
select * from veri_tablo where tarih >= DATE_SUB(CURDATE(), INTERVAL 15 DAY)
Bugün de dahil olmak üzere son 15 günün verilerini çektik böylelikle.
Ancak bugünün yazıları dahil olmasın isteyebilirsiniz. O zaman şöyle kullanacağız;
SELECT * FROM veri_tablo WHERE tarih BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 15 DAY ) AND CURDATE( )
select * from veri_tablo where tarih >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
select * from veri_tablo where tarih >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
Son 1 aylık örneğinden farklı olarak son 3 ayın kayıtlarını alacağız. Fakat bu aya ait yazıları çıkarıyoruz.
select * from veri_tablo where tarih BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 3 MONTH ) AND DATE_SUB( CURDATE( ) ,INTERVAL 0 MONTH )
Bu kez son 6 ile 3 ay arasındaki kayıtları alalım.
select * from veri_tablo where tarih BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 6 MONTH ) AND DATE_SUB( CURDATE( ) ,INTERVAL 3 MONTH )
Şimdi ise son 6 ay ile 12 ay arasındaki kayıtları alıyoruz.
select * from veri_tablo where tarih BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 12 MONTH ) AND DATE_SUB( CURDATE( ) ,INTERVAL 6 MONTH )
select * from veri_tablo where tarih = CURDATE()
select * from veri_tablo where WHERE tarih = DATE_SUB(CURDATE(),INTERVAL 1 DAY)
select * from veri_tablo where WHERE YEARWEEK(tarih) = YEARWEEK(CURRENT_DATE)
select * from veri_tablo where WHERE YEARWEEK(tarih) = YEARWEEK(CURRENT_DATE - INTERVAL 7 DAY)
Kod örnekleri aşağıdaki başlıklardan alınmış ve düzenlenmiştir.
Bu yazı 12 Kasım 2008, 18:44 tarihinde yazılmış olup bu zamana kadar 828 kez görüntülenmiştir
Bu yazı 6 adet yorum almıştır ve bunların tamamı görüntülenmektedir.
ben bilgilere giremedimnereden giremedim
![]()
kardeş çok teşekkür ederim böyle sql sorgular arıyordum sayende buldum. reklamlarına 1 kez tıkladım ![]()
evet o şekilde çekeceksin ve tarih formatında kaydedeceksin.
yıl-ay-gun saat:dakika:saniye
gibi yani
merhaba peki tarihi veri tabanında date olarakmı seçicez. Ek olarak veri tabanına hangi formatta kaydedicez. Bunları söylerseniz sevinirim.
Evet çalışmada bazı sorunlar çıkıyo ama genel olarak bu fonksiyonlarla dene yanıl şeklinde istediğiniz zaman diliminin seçimini çok kolay yapabiliyosunuz
Örneğin dünü seçmek istenildiğinde
DATE_SUB(CURDATE(), INTERVAL 1 HOUR)
Teşekkürler deneyeceğim
Yazını çok beğendim. Yeni yazılarının e-posta adresime gelmesini istiyorum :)