22. maj 2003 - 12:37Der er
13 kommentarer og 1 løsning
Konvertering af integer til klokkeslæt
jeg har en linked access database hvorfra jeg gerne vil hente nogle oplysninger over i min MS SQL database, desværre præsenteres klokkeslæt som int af varierende længde( 1-4 tegn) kan jeg konverterer disse integers til hh:mm ?
Højest sandsynligt fordi ikke alle Hensæt_KL er gyldige tal altså imellem 0 og 2359. Dvs. der er måske en integritetsfejl. Du kan evt. afsløre den vha.
SELECT COUNT(*), ISNULL(Hensæt_KL, '-1) FROM DATADB...RAP_1 procesdata GROUP BY Hensæt_KL ORDER BY 1 DESC
Du skal huske at kun at vælge de valide data... Gør sådan her:
select Hensæt_KL, convert(varchar(5), convert(datetime, '2359-01-01 ' + substring(RIGHT('000' + cast(Hensæt_KL as varchar), 4), 1, 2) + ':' + substring(RIGHT('000' + cast(Hensæt_KL as varchar), 4), 3, 4)),108) FROM DATADB...RAP_1 procesdata WHERE Hensæt_KL BETWEEN 0 AND 2359
Jeg har lavet en lille test, således at du kan se den rent faktisk gør hvad den skal:
declare @Hensæt_KL as varchar(50) set @Hensæt_KL = '0350' select @Hensæt_KL, convert(varchar(5), convert(datetime, '2359-01-01 ' + substring(right('000' + cast(@Hensæt_KL as varchar), 4), 1, 2) + ':' + substring(right('000' + cast(@Hensæt_KL as varchar), 4), 3, 4)),108)
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.