Avatar billede damon Nybegynder
16. februar 2006 - 12:28 Der er 7 kommentarer

db2 current dato format

Jeg har brug for at formatere current date således at den laver
2006-01-10 om til 20060110

Har prøvet med

CAST( YEAR(CURRENT DATE) AS CHAR(4)) CONCAT   
        CAST(MONTH(CURRENT DATE) AS CHAR(2)) CONCAT   
        CAST(  DAY(CURRENT DATE) AS CHAR(2))

men den laver måneden (01) om til 1 således at outputtet bliver
20061 10
Avatar billede kjulius Novice
16. februar 2006 - 19:31 #1
Mon ikke dette skulle kunne klare det lille problem?


CHAR(YEAR(CURRENT DATE)) CONCAT 
        CASE WHEN MONTH(CURRENT DATE) > 9 THEN
                  CHAR(MONTH(CURRENT DATE))
            ELSE
                  '0' CONCAT CHAR(MONTH(CURRENT DATE))
            END
        CONCAT CHAR(DAY(CURRENT DATE))
Avatar billede kjulius Novice
17. februar 2006 - 01:05 #2
Nå ja, det samme gælder vel for dagen:

CHAR(YEAR(CURRENT DATE)) CONCAT
        CASE WHEN MONTH(CURRENT DATE) > 9 THEN
                  CHAR(MONTH(CURRENT DATE))
            ELSE
                  '0' CONCAT CHAR(MONTH(CURRENT DATE))
            END
        CONCAT
        CASE WHEN DAY(CURRENT DATE) > 9 THEN
                  CHAR(DAY(CURRENT DATE))
            ELSE
                  '0' CONCAT CHAR(DAY(CURRENT DATE))
            END
Avatar billede kjulius Novice
17. februar 2006 - 01:30 #3
Hmm, der skal vist også trimmes lidt ved brug af CHAR i stedet for en CAST til den rigtige længde, som du havde brugt i dit oprindelige statement:

RTRIM(CHAR(YEAR(CURRENT DATE))) CONCAT RTRIM(
        CASE WHEN MONTH(CURRENT DATE) > 9 THEN
                  CHAR(MONTH(CURRENT DATE))
            ELSE
                  '0' CONCAT CHAR(MONTH(CURRENT DATE))
            END)
        CONCAT RTRIM(
        CASE WHEN DAY(CURRENT DATE) > 9 THEN
                  CHAR(DAY(CURRENT DATE))
            ELSE
                  '0' CONCAT CHAR(DAY(CURRENT DATE))
            END)


Alternativ, som oprindeligt (og efterhånden også mere "rent"):

CAST(YEAR(CURRENT DATE) AS CHAR(4)) CONCAT CAST(     
        CASE WHEN MONTH(CURRENT DATE) > 9 THEN       
                  CHAR(MONTH(CURRENT DATE))           
            ELSE                                     
                  '0' CONCAT CHAR(MONTH(CURRENT DATE))
            END                                       
        AS CHAR(2)) CONCAT CAST(                     
        CASE WHEN DAY(CURRENT DATE) > 9 THEN         
                  CHAR(DAY(CURRENT DATE))             
            ELSE                                     
                  '0' CONCAT CHAR(DAY(CURRENT DATE)) 
            END                                       
        AS CHAR(2))

Det første svar var ikke tjekket, dette mit seneste svar er tjekket mod DB2 UDB for iSeries V5R3M0, så jeg går ud fra, at du vil kunne bruge det...
Avatar billede kjulius Novice
23. februar 2006 - 23:53 #5
Hvad mener du med at opføre det link? Det viser kun en liste over spørgsmål...

Du har sikkert en idé med at gøre det, men jeg kan ikke gætte det. Så hjælp mig, please...
Avatar billede sandmand Nybegynder
24. februar 2006 - 12:28 #6
Avatar billede kjulius Novice
25. februar 2006 - 21:41 #7
--> sandmand: Okay, det var det du ville antyde. Det kunne jeg bare ikke umiddelbart gennemskue. Nu jeg er blevet ledt i den rigtige retning, kan jeg da godt se, at det er en lang liste over ulukkede spørgsmål, hvilket ikke gør spørgeren ære. Har man fået et korrekt svar, bør man også aflevere sine point..

Man kan jo håbe, at han ikke glemmer dette spørgsmål...

--> Damon, du glemmer mig da ikke bare, vel? :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester