SQL Server'da tarih alanları için kullanılan Veri Tipler le ilgili küçük bir örnek yapalım. Veri tipimiz SmallDatetime olsun.
SmallDateTime
'01.06.2007 00:00:00'
'YYYY-MM-DD hh:mm:ss'
Şeklinde kayıt tutar.
Bugünün kayıtlarını getirmek istiyoruz yada belirlediğimiz bir tarihteki kayıtları getirmek istiyoruz. Bu gibi durumlarda şöyle yapılabilirdi.
|
|
Fakat saat,dakika,Saniye cinsindende kayıt tuttuğu için kayıtlar eksik gelecektir.
Tarih Alanını 'gün/ay/yil' şeklinde parçalayıp şöyle bir sql de yazabiliriz. Biraz zahmetli olsada arkadaşım 'mma' 3 milyon kayıtta yaptığı testte yapılan işlemler içinde en performanslısı olduğunu söyledi bunuda not olarak düşelim.
|
|
Daha az zahmetle yapacağımız bir örnek daha vereyim.
|
|
Tarih alanı ve getdate() ile aldığımız şuan'ın tarih bilgisini
nvarchar(8) e çeviriyoruz.
'01.06.2007 00:00:00' olacağı değer '20070106'
bu şekilde eşit olan kayıtları getirebilirsiniz.
önceki yazı CakePHP ile basit bir ziyaretçi defteri |
sonraki yazı Mysql Table Partition (LIST Partition Örnekleri) |
2. yöntemene benzer bir yol kullanıyorum. ilki ilginçmiş :) böyle kullanımını ilk defa gördüm. yazı için de teşekkürler kodamanda sql server dökümanı görmek gerçekten güzel.
microsoftu bazen gerçekten anlamıyorum. o kadar asp.net ile sql geliştiriliyor. ama hala tarih alanları uyumsuz. .net içinden datetime verisi göndermiyorsunuz.parametre oalrak bile kabul etmiyor. bunları aşsalar iyi olacak.
bir kötü yanı da sqlden gelen datetime verisini .netin datetime'ına çevirmek gerçekten bela içinde saniyeler vs olduğu için her zaman saçmalıyor. şunları aşsalar çok güzel olacak.
int karşılaştırmak string karşılaştırmaya göre kolaydır. İlk yöntemde int, ikinci yöntemde nvarchar(8) karşılaştırıyorsunuz. Az kayıt olan bir tabloda fark edemeyebilirsiniz ama birinci yöntem daha performanslı çalışır.
@vectro
Asp.net ile object olarak tarih bilgisi gönderirseniz problem yaşamazsınız.
Bu sistemin aynısı mysql'de yokmu? Biriside mysql için aydınlatsa bizi :(
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.