SQL Kodları ile tarihi parçalama (Yıl,Ay,Gun)

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

SQL Kodları ile tarihi parçalama (Yıl,Ay,Gun)

Mesaj gönderen SieS »

Merhaba
Bir tabloma tarih formatında bilgi kaydediyorum. Bu bilgiyi kullanarak bir başka tabloya özet oluşturmaya çalışıyorum bunun içince Yıl,Ay,Gun
bilgilerini ayrı ayrı almam gerekiyor.
Mesela tarih = 02.03.2004 bu bilgi bana
Yıl = 2004 strign
ay = 03 string
gun = 02 string şeklinde lazım .

NOT buişlemi procedure içinde yapacağımdan SQL ile parçalamam lazım.

Mümkünatı varmıdır. Yoksa Delphide halledip o şekildemi yollamam gerekiyor.

Şimdiden teşekkür ederim
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

eger en azindan interbase veya firebird kullanıyorsanız imkanı var tabi. substr fonksiyonu ile bunu halledebilirsiniz. Fakat interbase'de de bu fonksyion udf olarak ekleneibliyor. Forumda daha once gecmisti bu konu oradan bakabilirsiniz....
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

merhaba!.
interbase de storedprocedurelerin içinde tarihi parçalaybilirsin.

Kod: Tümünü seç

   param_yil=(extract (year from Tabloadi.alanadi))
   param_ay=(extract (month from Tabloadi.alanadi))
Değişkene aktarma işlemini test etmedim yeni ben kullanırken direk karşılaştırma için kullandım. function olduğuna göre değişkene değer alabilmen lazım. :wink:
günü denemedim ama oda extract(day from tabloadi.alanadi) olmali. :?:
kolay gelsin. iyi çalışmalar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

interbase 6.5 için

Kod: Tümünü seç

select kayit_tarihi, 
   extract(day from kayit_tarihi) as Gun,
   extract(month from kayit_tarihi) as Ay,
   extract(year from kayit_tarihi) as Yil 
from ogrenci
şeklinde kullanabilirsin.
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

sevgili aslangeri teşekkür ederim örneğinizi aynen yazdım derleme esnasında hata vermedi ama commit

Invalid token.
invalid request BLR at offset 135.
parameter mismatch for procedure MDATA3_EKLE.

şeklinde bir hata verdi benim tanımlı tarih formatım
TIMESTAMP tipinde ama Yıl ve ay degerlerim string tipinde
bundan kaynaklanan bir hata olabilirmis sizce
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

tekrar merhaba
parameter mismatch for procedure MDATA3_EKLE.
Sanırım problem MDATA3_EKLE proceduresinin parametrelerinde.
parametrelerini kontrol edip tekrar denemeni düzelmemesi durumunda
kodları görmeden yapabileceğim fazla bir şey olmadığını beyan edip san başarılar dilerim.
iyi çalışmalar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
SieS
Üye
Mesajlar: 166
Kayıt: 17 Haz 2003 10:41
Konum: Konya

Mesaj gönderen SieS »

Hallettim.
Herkese teşekkür ederim .
Allah razı olsun. İyiki varsınız. 8)
Cevapla