webForumDet fria alternativet

Endast arbetsdagar

Databaser & SQL

3 svar · 436 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#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 :-\

Medlem sedan mars 20007 896 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.

Medlem sedan mars 20011 346 inlägg
#3

Sorry glömde!
Är MSSQL 2005.

Medlem sedan mars 20011 346 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

247 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)