webForumDet fria alternativet

Konvertera Float till YYMM

2 svar · 361 visningar · startad av wazid

wazidMedlem sedan maj 2001156 inlägg
#1

Hej

Jag har en tabell med ett fält som är av typen Decimal.
Det innehåller datum av typen 20060202 ! Hur tokigt det än må vara.

Nu vill jag i min Selectfråga gruppera posterna efter månad.
Alltså:
200602
200603
osv.

Jag kan konvertera till Char med

CAST(EGACDT AS CHAR(8))

Sedan vill jag plocka ut de första sex tecknen, men det blir felmeddelande då

SUBSTRING(CAST(EGACDT AS char(8)),1,6)

Jag har även försökt med LEFT, men utan att det fungerar.
Har någon ett tips??

MvH

David

wazidMedlem sedan maj 2001156 inlägg
#2

Löste det..

SELECT     SUBSTRING(CAST(EGACDT AS Char(8)), 1, 6) AS bokdat
FROM         FGLEDG
GROUP BY SUBSTRING(CAST(EGACDT AS Char(8)), 1, 6)
HAVING      (SUBSTRING(CAST(EGACDT AS Char(8)), 1, 6) BETWEEN '200503' AND '200603')
ORDER BY SUBSTRING(CAST(EGACDT AS Char(8)), 1, 6) DESC

Det som strulade till det var att det faktiskt i Enterprise managers grid står så här:

SUBSTRING(CAST(EGACDT AS Char(8)); 1; 6)

Om jag skiver så här i Griden

SUBSTRING(CAST(EGACDT AS Char(8)), 1, 6)

får jag ett felmeddeande som säger Invalid Expression.

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Posta felmeddelandet, bums.

121 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
119 ms — hämta tråd, inlägg och bilagor (db)