Avatar billede nat Nybegynder
02. marts 2006 - 13:42 Der er 4 kommentarer og
1 løsning

Funktion til formatering af datoformat

Hej Eksperter,

Jeg har et datoformat der ser således ud:

2006-03-01 16:25:35.397

Jeg vil gerne kunne selectere på følgende måde:

select * from kalender where date = dbo.f_formatDate(01-03-2006)

Er der en der kan lave en sådan funktion (f_formatDate)
Avatar billede ldanielsen Nybegynder
02. marts 2006 - 14:21 #1
Hvis du selecter at date skal være lig med 01-03-2006, så får du sikkert ikke noget ud, for så vil den kun returnere de der har date = 2006-03-01 00:00:00.000

Brug i stedet DATEDIFF:

SET DATEFORMAT dmy
select * from kalender where DATEDIFF(d, date, CONVERT(smalldatetime, '01-03-2006')) = 0
Avatar billede ldanielsen Nybegynder
02. marts 2006 - 14:26 #2
Hvis du gerne vil have converten over i en function ser det sådan ud:

CREATE FUNCTION f_formatDate (@strInput varchar(10))
RETURNS smalldatetime
AS 
BEGIN
RETURN CONVERT(smalldatetime, @strInput, 105)
END

Man kan ikke bruge SET DATEFORMAT i en function, i stedet styler jeg convert'en med 105, der har formatet dd-mm-yyyy
Avatar billede nat Nybegynder
02. marts 2006 - 16:06 #3
Thanx, smider du et svar :)
Avatar billede ldanielsen Nybegynder
02. marts 2006 - 21:20 #4
OK, kunne du bruge det?
Avatar billede nat Nybegynder
06. marts 2006 - 11:51 #5
Det kan du tro jeg kunne :)
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