Zoque.Forum
»
Tarih Değişkeni, "where" ve "order by" Kullanımı
|
| Veritabanları MySQL , MSSQL, SQL, Access, Oracle |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Üyelik Tarihi: 02.06.2001
Yer: İstanbul
Yaş: 28
Mesaj: 279
|
Tarih Değişkeni, "where" ve "order by" Kullanımı
Şöyle bir problemim var.
Databasenin içinde haber tablosu var.(Başka tablolarda var) Haber tablosu içinde htarih sütunu var.(Başka sütunlarda var) Benim istediğim Bu tablonun içinden, yeniden eskiye doğru, 5 günlük bilgileri almak yani bugün ayın 15 i ise, 15-14-13-12-11. inci günlerin haberlerini sıralayacağım. Bunun için dim eski eski = now - 5[gün ?] SQL = "Select * from haber where htarih > eski order by htarih desc" türü birşey yapmam gerekiyor. Bu dizilimi nasıl sağlayabilirim? 5 günü nasıl tanımlayabilirim. Not: 5 günü tanımlarken ay ve yıl başlarıda hesaplanabilmeli. Mesela 02.01.2002 22:19:03 türündeki bir tarih, 28.12.2001 22:19:03 şeklinde "eski" değişkenine atanmalı. Not: Yukarıdaki gibi bir dizilimi( "where" ve "order by" beraber) başka tablolar için çalıştırabiliyorum.
__________________
www.kasif.org |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,907
|
gunsure = DateDiff("d",Now,#7/8/2002#)
gün olarak bir değer verecektir.eğer duyarlılık saat bazına indirilecekse yardımcı olarak saatsure = DateDiff("h",Now,#7/8/2002#) burada eğer geçmiş bir zaman ile çalışılacaksa ortaya çıkan değer - [=negatif] bir değer elde edilecek ve bunun kontrolü yeterli olacaktır. SQL = "Select * from haber where DateDiff("d",htarih,now) > (-5) order by htarih desc" olacaktır sanırım. birebir denemediğim için sonucu kesin söyleyemiyorum... ./ - değerin büyüklük kontrolü kafaları karıştırmasın...
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 28.05.2001
Yer: İzmir/Ankara
Yaş: 23
Mesaj: 766
|
ben şöyle bir şey kullanıyorum:
(ama bu absconder ınki kadar ayrıntılı değil yani basit bir kod kullanmak istersen bunu alabilirsin) sonkacgun=5 SQL = "Select * from haber where htarih > Date() - "& sonkacgun &" order by htarih desc" |
|
|
|
|
|
#4 (permalink) |
|
Mesaj: n/a
|
now yerine date kullanırsan sanırım sorunun çözülecek....
hangi database i kullandığın çok önemli order by yaptığın tarih bölümü alanı tarih olarak tanımlanmalı ve veritabanı formatına uyumlu yazmalısın yani SQL server için 31.12.2002 iken MySQL de 2002-12-31 gibi yoksa order by yapamazsın sıralaman hatalı olur. ve kullandığın dile göre mesela vbasic için eski=date- 5 ' beş gün öncesi döner veya elindeki tarih formatına göre önce tarihi parçalaman gerekebilir tarih=31.12.2002 gun=left(tarih,2) ' 31 tamsayısı geri döner |
|
|
|
#5 (permalink) | |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,907
|
Alıntı:
ay=month(tarih) 'ay=12 yil=year(tarih) 'yil=2002 ayrıca ay=mid(tarih,3,2) 'ay'ın değerinin 12 olacağıan kimse garanti veremez. misal, tarih=5.12.2002 için geçerli değildir. ama ay=month(tarih) ' ay değeri her zaman tarih 05.12.2002 olsa da 5.12.2002 olsa da 12 değerini alır. bu gundeğişkeni için de geçerli. her yöntem kendi içinde çözümdür. yada bildiğin yol en iyi yoldur ![]()
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 02.06.2001
Yer: İstanbul
Yaş: 28
Mesaj: 279
|
Arkadaşlar yardımlarınız için çok teşkkürler.
Birkaç değişik yöntem öğrenmek benim için çok iyi oldu.
__________________
www.kasif.org |
|
|
|
![]() |
| Etiketler |
| kullanimi , byquot , quotorder , quotwherequot , degiskeni , tarih |
|
|
Zoque'a hoşgeldiniz!