22. januar 2015 - 23:18 Der er 7 kommentarer og
1 løsning

Opret min egen funktion

Jeg kommer til at formatere en dato som tekst således '22 JAN 2015' en del gange... og jeg vil derfor gerne lave en funktion, som jeg kan kalde både fra almindelige select sætninger og inde fra views...


CONCAT(DATEPART(DAY, TheDate),' ', UPPER(CONVERT(char(3),  TheDate, 0)), ' ', DATEPART(YEAR, TheDate))

Det kunne være mægtigt om funktionen kunne variere om måneden skal være UPPER, LOWER eller blot som convert funktionen leverer den 'Jan'
Samtidig en variable @UseSpace, hvor mellemrummet bliver en karakter ved true og nul karakter ved false

Helt grøn i sql funktioner, så derfor ønskes lidt hjælp til den første
22. januar 2015 - 23:44 #1
Jeg har forsøgt følgende...

CREATE FUNCTION myDateString (@TheDate datetime, @UseSpace bit)
RETURNS nvarchar(15)
AS BEGIN
    DECLARE @RetVal nvarchar(15)
   
    SET @RetVal = CONCAT(DATEPART(DAY, @TheDate), CASE @UseSpace WHEN 1 THEN ' ' ELSE '' END, UPPER(CONVERT(char(3), @TheDate, 0)), CASE @UseSpace WHEN 1 THEN ' ' ELSE '' END, DATEPART(YEAR, @TheDate))
   
    RETURN @RetVal
END



Ved forsøg på brug... select myDateString('2015-01-30',0) as Test
får jeg følgende fejl:  'myDateString' is not a recognized built-in function name.
Avatar billede arne_v Ekspert
23. januar 2015 - 01:23 #2
select dbo.myDateString('2015-01-30',0)

?
Avatar billede arne_v Ekspert
23. januar 2015 - 02:37 #3
Hvis du har mulighed for at oprette CLR funktioner, saa kan det goeres paenere i C#!
23. januar 2015 - 12:15 #4
Arbejder fra Excel :-)
23. januar 2015 - 13:16 #5
dbo.myDateString did the trick - smider du et svar
Avatar billede arne_v Ekspert
23. januar 2015 - 16:41 #6
svar
Avatar billede arne_v Ekspert
23. januar 2015 - 16:42 #7
CLR funktioner i C# koeres i databasen, saa det er ikke et problem at du bruger Excel som client.
23. januar 2015 - 19:27 #8
Så er der noget mere at lære... :-)
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

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