webForumDet fria alternativet

Endast arbetsdagar

3 svar · 434 visningar · startad av ironhead

ironheadMedlem sedan mars 20011 327 inlägg
#1

Hej alla glada!

Har kört fast litegrann...Jag har en tabell med ett fält som heter 'deadline', som innehåller ett datum.
När detta datum är 8 ARBETS-dagar eller mindre från dagens datum, ska den närmsta arbetsdagen skrivas ut.

t.ex. om deadlinedatumet - 8 arbetsdagar inträffar på en Lördag eller Söndag, så ska Fredagen innan skrivas ut.

Behöver lite hjälp :-\

SPiNMedlem sedan mars 20005 832 inlägg
#2

DBMS?

MySQL tillhandahåller funktionen dayofweek() för att få ut ett nummer för veckodagen (1-7, där 1=Söndag och 7=Lördag). Sen finns date_sub() eller datediff() för att subtrahera intervall eller jämföra två datum.

ironheadMedlem sedan mars 20011 327 inlägg
#3

Sorry glömde!
Är MSSQL 2005.

ironheadMedlem sedan mars 20011 327 inlägg
#4

Jag testar:

SELECT   
      CASE 
         WHEN datepart(dw,DATEADD(day,-8,Deadline)) = 1 THEN DATEADD(day,-10,Deadline)
         WHEN datepart(dw,DATEADD(day,-8,Deadline)) = 7 THEN DATEADD(day,-9,Deadline)
         ELSE DATEADD(day,-8,Deadline)
      END
FROM [table]....INNER JOIN...

Tack för hjälpen, SPiN

Genererad på 389 ms · cache AV · v20260730165559-full.f96bc7eb