Avatar billede alpapa Nybegynder
22. juli 2004 - 14:49 Der er 4 kommentarer og
1 løsning

Problemer med DATEPART ww

Hejsa Eksperter

Hvordan får jeg de "rigtige" dage med i de uger jeg selecter?

Nu får jeg fra søndag til og med lørdag - vil gerne at jeg får fra mandag til og med søndag?

Bruger denne fætter til at selecte med: (DATEPART(ww, vagt.dato)

På forhånd tak
alpapa
Avatar billede kibeha Nybegynder
22. juli 2004 - 15:51 #1
Du skal først udføre følgende :

SET DATEFIRST 1

Dermed fortæller du den at dine uger begynder med mandage.
Ellers køres der med default, som er SET DATEFIRST 7 - altså at ugerne begynder med søndage (sådan som amerikanerne gør det :-)

Håber det virker.
Avatar billede kibeha Nybegynder
22. juli 2004 - 15:58 #2
PS.

Bemærk at du kan få problemer med ugenumrene her i Europa.
DATEPART(ww,dato) antager så vidt jeg ved at uge 1 er den uge, hvor den 1. januar er i. Det er igen amerikansk standard, mens europæisk (ISO) standard kan godt starte uge 1 f.eks. den 3. januar. (Hvis den 1.januar er en torsdag eller efter, begynder uge 1 først efterfølgende mandag iflg. ISO standard.)

Hvordan du løser det problem i MS SQL er jeg faktisk ikke klar over...
Avatar billede kibeha Nybegynder
22. juli 2004 - 16:01 #3
PS.PS.

Jeg mente selvfølgelig hvis den 1.januar er en *fredag* eller efter, begynder uge 1 først efterfølgende mandag.

I år er det ikke noget problem, men gør dig selv den tjeneste at teste dine ting for datoer i januar 2005. Her begynder uge 1 iflg. os først mandag den 3. januar.
Avatar billede alpapa Nybegynder
22. juli 2004 - 16:35 #4
Okay - hvor sætter jeg SET DATEFIRST 1 ind henne, kan du give et lille eksempel?
Avatar billede alpapa Nybegynder
22. juli 2004 - 22:53 #5
Det var bare dette jeg skulle vide:

string SQL = "SET DATEFIRST 1 SELECT vagt.dato, vagt.start, vagt.slut, vagt.kampagne, location.location, location.byen, (LEFT(vagt.ansatNavn,10)) AS ansatNavn, vagt.ansatNavn AS ansatNavnLang, vagt.accepteret, vagt.evalueret, location.post, location.region, vagt.kontaktperson, vagt.andet, vagt.ID AS vagtID, vagt.ansatID AS ansatID, vagt.locationID AS locid FROM vagt INNER JOIN location ON vagt.locationID = location.ID WHERE vagt.ID > 0 " + where + " ORDER BY vagt.dato";

Men ellers tak
alpapa
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