Hej, jag har en fundering angående datum. Om du plockar ut veckor från en datumfunktion så finns det två parametrar som har betydelse: Ok, Tack för ditt utförliga svar, mycket bra! Använd inte veckor. Datum och tidpunkter är ofta lättare att hantera. Håller fullständigt med Andreas H. Lagra ALLA tidsuppgifter som datum + eventuell tidpunkt. Jag underhåller ett stort system där hälften av tidsuppgifterna är i veckoformat, synnerligen krångligt. Bygg två subrutiner, datum-till-vecka resp vecka-till-datum så kan du både presentera och ta emot tidsuppgifter i veckoframat när så önskas. Jag använder mig av datum i tabellen, det enda jag gör är att i frågan så tar jag de datum som är inom datumen för den aktuella veckan. Jag tror att jag löst det ändå!Flexibel veckostart
Jag har en fråga som plockar ut alla poster skrivna i den aktuella veckan. Men det jag inte tänkt på är att veckan startar väll på söndag?
Det jag skulle vilja är att styra så att veckan börjar på Måndag kl 07:00. Är detta möjligt och hur ser koden ut för detta?Sv: Flexibel veckostart
<info>
Function DatePart(Interval As String, Date, [FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1])
Function DateDiff(Interval As String, Date1, Date2, [FirstDayOfWeek As VbDayOfWeek = vbSunday], [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1])
</info>
FirstDayOfWeek - Anger vilken som är första vekcodagen, vilket standard är söndag, så som du säger.
VbFirstWeekOfYear - Anger hur första vecka av året bestäms. I sverige använder vi den vecka med fyra veckodagar.
Så ett exempel anrop i VB för att få ut dagens svenska vecka ser ut så här:
Debug.Print DatePart("ww",Now(),vbMonday, vbFirstFourDays)
I SQL så finns inte konstanterna tillgängliga:
SELECT DatePart("ww",TableName.DateField,2, 2) As TheWeek
FROM TableName
Ibland är det lämpligt att använda systemets inställningar:
Debug.Print DatePart("ww",Now(),vbUseSystemDayOfWeek, vbUseSystem)
Vilket i SQL motsvarar:
SELECT DatePart("ww",TableName.DateField,0, 0) As TheWeek
FROM TableName
I vilket fall som helst använder dessa Midnatt, inte 7:00.
Sv:Flexibel veckostart
Men vet du om det går att ändra så att det blir 07:00 i stället för 00:00 ??
Varför jag vill ha det så är för att databasen är en arbetslista (att göra lista) där de som använder den jobbar skift. Två skiftlag jobbar 7 dagar, en Dag och en natt med start måndag till söndag. Problemet blir vid midnatt söndag då natten inte slutar förens 04:00 på morgonen och då är ju arbetslistan tom så att säga enligt den fråga jag gjort.
När sedan nästa Två skiftslag går på Måndag kl 06:00 så vill dom kunna skriva ut föregående veckas arbetslista för att kolla vad som blivit gjort, där av klockslaget 07:00
Det vore därför praktiskt om man kunde styra även tiden när veckan börjar.Sv: Flexibel veckostart
Kan du beskriva din nuvarande datastruktur.Sv:Flexibel veckostart
/Fim W.Sv: Flexibel veckostart
Sv:Flexibel veckostart
Om man använder sig av DateAdd funktionen så kan man ju dra av 7 timmar från datumen, då blir det väll rätt?