Tiger DB de DATE_ Field ını nasıl convert etmek lazım.

Gönderen Konu: Tiger DB de DATE_ Field ını nasıl convert etmek lazım.  (Okunma sayısı 1476 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı LsuErsoy

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 33
  • Kişisel ileti
Merhaba Arkadaşlar ;

Aşağıdaki kod tarih kriterini doğru bir şekil de dikkate almıyor.2011 datalarını da getirdiği gibi tarihleri de aşağıdaki gibi sıralıyor.

01.04.2012
01.05.2012
01.06.2012
02.04.2012
02.05.2012
03.04.2012
03.05.2012
03.06.2012

gibi

olması gereken sıralama

01.04.2012
02.04.2012
03.04.2012
.
.
.
.
03.06.2012 şeklinde olmalı...

benim eksik-hatalı kodum aşağıdaki gibi

Kod: [Seç]
SELECT     
           
           CONVERT(VARCHAR(10), BT.DATE_, 104) AS [FTR Tarihi],
           CC.CODE AS C_KODU,
           CC.DEFINITION_ AS C_ÜNVAN,
           CASE (SUBSTRING(CC.CODE,1,1))
WHEN '0' THEN 'K'
WHEN '2' THEN 'Ü'
WHEN 'Y' THEN 'Y'
END [Ö.SEVİYE],

                BT.MODULENR,
           CASE (BT.SIGN)
WHEN 0 THEN 'BORÇ'
WHEN 1 THEN 'ALACAK'
           END [B/A],
           BT.FICHEREF,
           BT.TRCODE,
           BT.TOTAL AS TOPLAM,
           --BT.CANCELLED,
           BT.NETTOTAL
           
           
FROM       LG_011_01_PAYTRANS AS BT INNER JOIN
           LG_011_CLCARD AS CC ON BT.CARDREF = CC.LOGICALREF
           
           WHERE
BT.CANCELLED = 0 AND
SIGN=0 AND
SUBSTRING(CC.CODE,1,1) IN ('0','2') AND
CONVERT(VARCHAR(10), BT.DATE_ , 104) BETWEEN  '01.04.2012' AND '30.04.2012'         
           
           ORDER BY CONVERT(VARCHAR(10), BT.DATE_ , 104)

yardım edebileceklere şimdiden teşekkürler...

Çevrimdışı Koray Ü.

  • Logo Uzmanı
  • *****
  • Karma: 8
doğrudan ORDER BY DATE_ denediniz mi?

Çevrimdışı fast7

  • Yeni Kullanıcı
  • *
  • Karma: 0
ORDER BY CONVERT(DATETIME, BT.DATE_ , 102) bu şekilde olamsı lazım

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
doğrudan ORDER BY DATE_ denediniz mi?

Çok doğru söylemiş

Neden convert yapıp ona göre sıralıyorsunuz ki
ORDER BY  BT.DATE_  de orjinal ham haliyle sıralasın :) sen gösterimini faklı yap.

Kolay gelsin.

Çevrimdışı LsuErsoy

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 33
  • Kişisel ileti
Cevaplarınız için teşekkürler ,

Paytrans Ekstre çalışmamın en son hali aşağıdaki gibidir.

Kod: [Seç]

SELECT   
CONVERT(VARCHAR,PT.DATE_,104)'Vade Tarihi',
CC.CODE CARÝ_KOD,
CC.DEFINITION_ ÜNVAN,
CASE(PT.MODULENR)
 WHEN 3 THEN 'Sipariþ'
 WHEN 4 THEN 'Fatura'
 WHEN 5 THEN 'Cari Fiþ'
 WHEN 6 THEN 'Çek - Senet'
 WHEN 7 THEN 'Banka'
 WHEN 10 THEN 'Kasa'
 ELSE 'Diðer' END 'Tür',
 --C.MODULENR, --Bu satýr Pasif Yapýlabilir.
CASE
WHEN (PT.MODULENR=4) AND (PT.TRCODE=2) THEN 'Perakende Satýþ Ýade Fat'
WHEN (PT.MODULENR=5) AND (PT.TRCODE=3) THEN 'BORÇ DEKONTU'
WHEN (PT.MODULENR=7) AND (PT.TRCODE=3) THEN 'Gelen Havale'
WHEN (PT.MODULENR=3) AND (PT.TRCODE=1) THEN 'Satýþ Sipariþi'
END 'Fiþ Türü',
PT.DOCODE [Belge No],
PT.MODULENR MODÜL,
PT.TRCODE 'TRCODE',

CASE WHEN PT.SIGN='1' THEN 'ALACAK' 
WHEN PT.SIGN ='0' THEN 'BORÇ'
END DURUM,
CASE WHEN   MONTH(PT.DISCDUEDATE)= '1' THEN 'Ocak'
WHEN   MONTH(PT.DISCDUEDATE)= '2' THEN 'Þubat'
WHEN   MONTH(PT.DISCDUEDATE)= '3' THEN 'Mart'
WHEN   MONTH(PT.DISCDUEDATE)= '4' THEN 'Nisan'
WHEN   MONTH(PT.DISCDUEDATE)= '5' THEN 'Mayýs'
WHEN   MONTH(PT.DISCDUEDATE)= '6' THEN 'Haziran'
WHEN   MONTH(PT.DISCDUEDATE)= '7' THEN 'Temmuz'
WHEN   MONTH(PT.DISCDUEDATE)= '8' THEN 'Aðustos'
WHEN   MONTH(PT.DISCDUEDATE)= '9' THEN 'Eylül'
WHEN   MONTH(PT.DISCDUEDATE)= '10' THEN 'Ekim'
WHEN   MONTH(PT.DISCDUEDATE)= '11' THEN 'Kasým'
WHEN   MONTH(PT.DISCDUEDATE)= '12' THEN 'Aralýk'
END AY,
PT.TRCODE FÝÞ_TÜRÜ,
SUM(PT.TOTAL) TUTAR

FROM     LG_XXX_01_PAYTRANS AS PT
INNER JOIN LG_XXX_CLCARD AS CC
ON PT.CARDREF = CC.LOGICALREF
WHERE CC.DEFINITION_ LIKE 'GÖNCÜ CANSU'
GROUP BY
CC.CODE,
PT.TRCODE,
PT.DISCDUEDATE,
PT.TOTAL,
CC.DEFINITION_,
PT.MODULENR,
PT.SIGN,
PT.DATE_,
PT.DOCODE
ORDER BY PT.DATE_