gun , ay yil değişkenlerini birleştirme (sql içinde)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikut

gun , ay yil değişkenlerini birleştirme (sql içinde)

Mesaj gönderen ikut »

Merhaba

DB' veritabani içinde gun ay ve yil değerleri var ve bunlar numnerik tipte. Concat yaparsam hata veriyor.

şimdi bu tablodan 2 tarih arası kayıtları çekmek haliyle zor... en mantıklısı bu üç alanaı uygun formata yanyana getirip where ile uyan kayıtları almak.

bunu nasıl yaparım.

Düzeltme: bu DB' maalesef AS/400 üstünde haliylke sql notasyonları farklı concat kabul etmedi ama || ile yaptım. değerleride Char ile char tipine çevirince oldu bu seferde sorun şu; 2005 3 12 gibi bir deger veriyor. bunu direst select içinde kullanıclacak hale nasıl getirirm.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

AS/400 de VT DB2 mu? CAST yada TO_CHAR tipi benzer bir fonksiyon var ise;

Kod: Tümünü seç

... CAST(YIL AS CHAR(2))||CAST(AY AS CHAR(2))||CAST(GUN AS CHAR(2)) ...
şeklinde string e çevirebilirsin. Doğrusu VT ye uygun tarih formatında tarihe çevirip öyle sorgulamaktır :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ikut

Mesaj gönderen ikut »

rsimsek yazdı:AS/400 de VT DB2 mu? CAST yada TO_CHAR tipi benzer bir fonksiyon var ise;

Kod: Tümünü seç

... CAST(YIL AS CHAR(2))||CAST(AY AS CHAR(2))||CAST(GUN AS CHAR(2)) ...
şeklinde string e çevirebilirsin. Doğrusu VT ye uygun tarih formatında tarihe çevirip öyle sorgulamaktır :idea:
merhaba

cast ile yapınca concat oldu ama bu seferde daha önce yazdığım gibi tek haneli aylarda sorun var.. ocaktan sonra ekim geliyor order by de..

ben şöyle birşey yaptım

Kod: Tümünü seç

Select 
C9ALACAK,C9BORC,C9FLAG,C9DVZKOD,C9DVBORC,C9DVALAC,C9FISYIL,C9FISAY,C9FISGUN, ((C9FISYIL*400) +(C9FISAY*31)+C9FISGUN) AS FSTTAR  
FROM VMUHLIB.MUHHARF 
WHERE C9CARKOD='00001'  ORDER BY FSTTAR
böyle olunca hem kolonlar dogru geliyor hemde sıralama ancak where satırında fsttar=802432 (2006 * 400+1*12+1=2006 01 01) yani ocak 1 2006 hareketlerini getir dediğimde sql çalışmıyor fsttar dışındaki tüm koşullarda ise çalışıyor.

fsttar ı ben ürettiğim içinmi where içinde kullanamıyorum.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Önceki mesajda dediğim gibi YIL, AY, GÜN değerlerini VT nin tarih formatına uygun şekilde (YYYY-MM-DD mi yoksa YYYY/MM/DD mi her ne şekilde ise) TARIH şekline çevirmeniz daha doğru olacak. Diğer türlü kulağı ters göstermek gibi bir şey oluyor :roll:

Kod: Tümünü seç

...
CAST( CAST(YIL AS CHAR(4))||'-'||CAST(AY AS CHAR(2))||'-'||CAST(GUN AS CHAR(2)) AS DATE )
...
tarih formatını YYYY-MM-DD varsaydım :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
MoSoft
Üye
Mesajlar: 80
Kayıt: 10 Nis 2005 10:45
Konum: Askerden....
İletişim:

Mesaj gönderen MoSoft »

Genelde gg-aa-yyyy olur. Aralara . diye kayıt eder ararken / bunu ister. Bende fonksiyon yazdım kendime.

var
a,b,c,d,e:string;
begin
d:=DateToStr(Date);
a:=LeftStr(d,2);
b:=MidStr(d,4,2);
c:=RightStr(d,4);
e:=a+'/'+b+'/'+c;
end;
Şafak 300 ( 10.04.2005) dü artık Yok....

http://www.ucretsizyazilim.com
Kısaca Ben : http://www.google.com.tr/search?hl=tr&q ... 5%9F&meta=
Cevapla