SQL Tarih Filtreleme

Sql Tarih Filtreleme



Verileri tarih değerine göre filtrelemek, veritabanlarıyla çalışırken sık karşılaşılan bir durumdur. Örneğin, belirli bir zaman dilimindeki verileri almamıza, belirli bir tarihe göre sonuçları toplamamıza, zaman içindeki trend modellerini belirlememize ve zamanla ilgili diğer işlemlere olanak sağlayabilir.

Bu nedenle herhangi bir veritabanı geliştiricisi için önemli bir beceridir. SQL, belirli bir veri kümesindeki tarihleri ​​filtrelemek için bize çeşitli araçlar sağlar.







SQL dünyasında tarihleri ​​filtrelemek için kullanabileceğimiz çeşitli yöntem ve teknikleri keşfederken bu yazıya bize katılın.



Önkoşullar:

Pratik örneklere ve uygulamalara dalmadan önce bunun için neye ihtiyacınız olduğunu açıklayalım.



Bu yazıda neredeyse tüm SQL veritabanlarına uygulanabilecek yöntemlere uymaya çalışacağız. Ancak gösterim amacıyla Sakila örnek veritabanıyla birlikte MySQL sürüm 8'i kullanıyoruz.





Ancak dilediğiniz veri setini indirip kullanmakta özgürsünüz. Sunulan bir yöntemin diğer veritabanlarında çalışıp çalışmayacağını ve varsa alternatif sunup sunamayacağını mutlaka belirteceğiz.

Belirli Bir Tarihi Filtrele

En temel tarih filtreleme işlemi, belirli bir tarihe ait bir kaydı veya birden fazla kaydı almamız gereken yerdir.



Böyle bir durumda WHERE deyimini ve ardından tarih sütununu ve almak istediğimiz gerçek tarih değerini kullanabiliriz.

Örneğin 24 Mayıs 2005 tarihinde gerçekleşen kira kayıtlarını öğrenmek istediğimizi varsayalım. Aşağıdaki gibi bir sorgu çalıştırabiliriz:

SEÇME *
Kiralamadan itibaren
WHERE kiralama_tarihi = '2005-05-24 23:03:39' ;

Bu durumda filtrelemek istediğimiz tarihi zaman damgası değeri olarak sağlıyoruz. Bunun nedeni “kiralama_tarihi” sütununun değerleri zaman damgası olarak saklamasıdır.

Tarih Aralığını Filtrele

İkinci yaygın işlem, verileri belirli bir tarih aralığına göre filtrelemektir. Örneğin, Mayıs 2005 ile Haziran 2005 arasında gerçekleşen kiralamaları geri almak istediğimizi varsayalım.

Sorguyu şu şekilde çalıştırabiliriz:

SEÇME
*
İTİBAREN
kiralama
NEREDE
kiralama_tarihi ARASINDA '2005-04-01 00:00:00' VE '2005-06-01 00:00:00' ;

Bu durumda iki değeri birleştirmek için AND operatörünü kullanırız. WHERE deyimi, 'kiralama_tarihi' sütunundaki herhangi bir değerin iki aralık arasında olması gerektiği durumlarda kullanılır.

Örnek bir çıktı aşağıdaki gibidir:

Tarih Bileşenini Filtrele

Diğer durumlarda, gerçek değerleri kullanan bir tarih aralığı kullanmak yerine, değerden belirli tarih bileşenlerini çıkarabilir ve buna göre filtreleyebiliriz.

Örneğin 2005-04-01 ve 2005-06-01 tarihlerini belirtmek yerine Mayıs ayını çıkarabilir ve o ay içindeki tüm verileri filtreleyebiliriz.

Bunu başarmak için MySQL'de aşağıdaki örnekte gösterildiği gibi MONTH() işlevi gibi bir işlev kullanabiliriz:

SEÇME
*
İTİBAREN
kiralama
NEREDE
AY ( kiralama_tarihi ) = 5 ;

Bu durumda MONTH(kiralama_tarihi), tarihten ay kısmını çıkarır. Daha sonra bu değeri, değerin 5'e (Mayıs) eşit olduğu yeri filtrelemek için kullanabiliriz.

Çözüm

Bu derste, SQL'deki en temel ve yaygın görevlerden birini, verileri tarih değerine göre filtrelediğimiz hakkında öğrendik. Bir tarihten çeşitli bileşenleri nasıl çıkaracağımızı ve onu tarihi filtrelemek için nasıl kullanacağımızı ve daha fazlasını öğrendik.