10. juli 2000 - 11:53 Der er 8 kommentarer og
1 løsning

DatePart og Europæiske ugenumre

Hvis man bruger DatePart(wk, getdate())
så får man et amerikansk ugenummer;
10.juli 2000 = 29

I Danmark defineres den første uge i året, som den uge hvor den første torsdag indgår.
Hvordan får man det rigtige ugenummer?

Med venlig hilsen
Henrik Staun Poulsen
S-Tek Software

11. juli 2000 - 11:48 #1
Jeg har læst på mange nyhedsgrupper om dette problem.
Der ser ud til at være 2 muligheder; opgrader til MS SQL 2000, eller brug Visual C++ til at lave en ekstern funktion.
Jeg har ikke mulighed for nogen af delene.

Er der nogen der ved om man kan købe et bibliotek til erstatning af datepart(wk, adate) ?

Med venlig hilsen
Henrik Staun Poulsen
S-Tek Software ApS
Avatar billede jper Nybegynder
12. juli 2000 - 13:53 #2
Da den 1/1 var en lørdag så er første dag i ugen vel lørdag (for SQL-Serveren)så kan du fra Query Analyzeren køre følgende statement som sætter den rigtige start dag på ugen:

set datefirst 6

Her er query og resultat efter dette lille stunt
SELECT DATEPART(wk, GETDATE()) AS 'Week Number'
Week Number
-----------
28

(1 row(s) affected)

Jeg håber det kan hjælpe dig
12. juli 2000 - 14:18 #3
Hej Jper,

Prøv følgende
set datefirst 6

SELECT DATEPART(wk, GETDATE()) AS 'Week Number ',
DATEPART(wk, '2000-01-01') AS '1.jan= ugenr 52 ',
DATEPART(wk, '2000-01-06') AS '6.jan= ugenr 1 ',
DATEPART(wk, '2000-01-09') AS '9.jan= ugenr 1 ',
DATEPART(wk, '2000-01-10') AS '10.jan= ugenr 2 ',
DATEPART(wk, '2000-12-31') AS '31.dec= ugenr 52 '

Så kan du se at det ikke er særligt godt.
mvh
Henrik
12. juli 2000 - 14:20 #4
Det giver forkert svar for 1.jan, 9.jan og 31.dec.
Der er sikkert også flere der ikke er helt rigtige.
mvh
Henrik
Avatar billede jper Nybegynder
12. juli 2000 - 14:30 #5
Øv, jeg troede lige at jeg var smart.... ;-) eller rettere jeg fulgte Microsofts recommendations for uge nr problemet.
12. juli 2000 - 14:39 #6
Jaaa, det ser ud til at være et stort problem for mange mennesker.
Kender du noget software der kan købes der kan dette?
MS SQL2000 er udelukket, og det skulle ugenumre helst ikke være
Avatar billede jper Nybegynder
12. juli 2000 - 14:59 #7
Nej jeg har kigget hos component source og microsoft men der var ikke rigtig noget, sorry :-(
12. juli 2000 - 15:03 #8
Ok, tak for hjælpen.
Er der andre der har forslag?
15. december 2000 - 14:41 #9
Løsningen var til slut at lave vores egen Calendar tabel, og så fylde cirka 500 dage i den.
Efter at have oprettet et par views, får vi de oplysninger ud vi har brug for. Det kør bare.

Tak for hjælpen.
mvh
Henrik
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