Avatar billede bundgaard Nybegynder
16. juni 2004 - 12:12 Der er 18 kommentarer og
1 løsning

Lægge to NVARCHARS sammen?

Kig overskriften.. er det muligt? :)
Avatar billede fsconsult.dk Nybegynder
16. juni 2004 - 12:19 #1
Vil du concattenere 2 varchars eller lægge det sammen matematisk?

med

select fornavn + ' ' + efternavn from person

får du sat de 2 felter sammen.
Avatar billede bundgaard Nybegynder
16. juni 2004 - 12:19 #2
Matematisk :)

Altså f.eks. nvarchar1 + nvarchar2 = nvarchar3
Avatar billede arne_v Ekspert
16. juni 2004 - 12:24 #3
CAST(nvarchar1 AS INTEGER) + CAST(nvarchar2 AS INTEGER)

måske
Avatar billede bundgaard Nybegynder
16. juni 2004 - 12:25 #4
Syntax error converting the nvarchar value '8:36:22 AM' to a column of data type int.

:/
Avatar billede arne_v Ekspert
16. juni 2004 - 12:30 #5
Hvordan vil du ligge '8:36:22 AM' sammen med noget matematisk ?
Avatar billede bundgaard Nybegynder
16. juni 2004 - 12:34 #6
Lang historie, men for at gøre den kort;

Vi har to tal (AfgangTid og AnkomstTid) vi skal ha trukket fra hinanden (ikke lagt sammen, min fejl :) for at regne fravær ud.

AfgangTid og AnkomstTid er to nvarchars.. er det muligt at gøre det?
Avatar billede arne_v Ekspert
16. juni 2004 - 12:41 #7
DATEDIFF("noget", CAST(nvarchar1 AS DATETIME), CAST(nvarchar2 AS DATETIME))

hvor "noget" er "d" eller "h" eller "s" eller noget andet
Avatar billede bundgaard Nybegynder
16. juni 2004 - 12:44 #8
Det ser ud til at virke :)

Kan man få den til at skrive både timer og minutter?
Avatar billede arne_v Ekspert
16. juni 2004 - 12:48 #9
DATEDIFF("h", CAST(nvarchar1 AS DATETIME), CAST(nvarchar2 AS DATETIME))

og

DATEDIFF("n", CAST(nvarchar1 AS DATETIME), CAST(nvarchar2 AS DATETIME))

[n for minutter !]
Avatar billede bundgaard Nybegynder
16. juni 2004 - 12:49 #10
Det fandt jeg også frem til hehe. Spørgsmålet gik mere på om man kunne få den til at skrive f.eks. "3 45" som så ville være 3 timer og 45 min?

Ved godt det er lidt udenfor spørgsmålet.. men smider self lidt flere point oveni, hvis det kan lade sig gøre :)
Avatar billede arne_v Ekspert
16. juni 2004 - 12:58 #11
Kan du ikke kombinere med fs's oprindelige forslag:

DATEDIFF("h", CAST(nvarchar1 AS DATETIME), CAST(nvarchar2 AS DATETIME)) + ' ' +
DATEDIFF("n", CAST(nvarchar1 AS DATETIME), CAST(nvarchar2 AS DATETIME))

?
Avatar billede arne_v Ekspert
16. juni 2004 - 12:59 #12
Jeg er ikke så skrap til TSQL men hvis det giver type problem så caster du bare
eksplicit de to tal to VARCHAR inden du konkatanerer dem sammen.
Avatar billede bundgaard Nybegynder
16. juni 2004 - 13:01 #13
SELECT DATEDIFF(n, CAST(AnkomstTid AS DATETIME), CAST(AfgangTid AS DATETIME)) + '' + DATEDIFF(hh, CAST(AnkomstTid AS DATETIME), CAST(AfgangTid AS DATETIME)) AS Fravaer
FROM Indstempling
WHERE CPRNummer = 123

Den skriver kun minutterne ud :/ Ved ikke om det er fordi den tager den laveste fællesnævner eller hvordan det virker?
Avatar billede bundgaard Nybegynder
16. juni 2004 - 13:05 #14
Ahh nu ved jeg hva der sker.. den lægger timerne oven i! Så hvis der der 120 minutter bliver det til 122, pga der er to timer :)
Avatar billede bundgaard Nybegynder
16. juni 2004 - 13:16 #15
smider du lige et svar arne? så får du pointene!
Avatar billede arne_v Ekspert
16. juni 2004 - 13:18 #16
Har du prøvet at caste resultatet af DATEDIFF til VARCHAR inden du ligger sammen ?

Og et svar
Avatar billede bundgaard Nybegynder
16. juni 2004 - 13:22 #17
Nææe det har jeg ikke prøvet.. hvordan gør det man det? :)

Undskyld de mange spørgsmål! Er ikke ekspert i SQL :/
Avatar billede bundgaard Nybegynder
16. juni 2004 - 13:27 #18
SELECT CAST(DATEDIFF(n, CAST(AnkomstTid AS DATETIME), CAST(AfgangTid AS DATETIME))) AS VARCHAR  + ' ' +
      CAST(DATEDIFF(hh, CAST(AnkomstTid AS DATETIME), CAST(AfgangTid AS DATETIME)))AS VARCHAR
FROM Indstempling
WHERE CPRNummer = 123

Giver følgende fejl: Incorrect syntax near 'CAST', expected 'AS'.
Avatar billede bundgaard Nybegynder
16. juni 2004 - 13:33 #19
Jeg fandt fejlen.. forkert placerede paranteser ;)

Tak for hjælpen!
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